O objeto String é uma estrutura de dados e seu componente principal é uma lista. Cada célula desta lista tem um personagem. A sequência total de caracteres forma a corda literal. Cada posição de caractere pode ser acessada por um índice ou por um iterador. A contagem de índice começa de zero. Um iterador é um ponteiro elaborado.
A classe C+ String possui diferentes variantes da função de membro reposição (). Esse conjunto de funções é chamado de funções sobrecarregadas. Este artigo explica como usar diferentes funções de String sobrecarregadas ().
A seguinte sequência de destino será usada para todos os exemplos:
"Nosso planeta tem 24 horas por dia."
O elemento (caractere) de um objeto String pode ser acessado por uma referência ou por um iterador. C ++ 20 Na verdade, tem 14 funções de membro sobrecarregadas () para a classe String. Com sete dessas funções, os elementos são acessados por referência, enquanto com os outros sete, os elementos são acessados por um iterador.
As funções de sete membros, para as quais os elementos são acessados por referência, serão explicados neste artigo. Apenas um para os sete restantes, para iteradores, será explicado. Com o conhecimento disso, para o qual o iterador acessa elementos, o leitor pode deduzir a explicação para os seis restantes.
Basic_String & Substituir (size_type pos1, size_type n1, const t & t)
Esta função de membro vai para o índice no POS1, então mede uma sub-string de comprimento n1 (começando do POS1) e o substitui por outra sub-string independente de matriz de cargas. A sub-cordão deve ser substituída e a sub-string não precisa ser do mesmo comprimento. O programa a seguir ilustra o seguinte:
#incluir
#incluir
usando namespace std;
int main ()
String Target = String ("Nosso planeta tem 24 horas por dia.");
substituição de char [] = "Solar Home";
resultado da string = alvo.substituir (4, 6, substituição);
cout << result << endl;
retornar 0;
A saída é:
Nossa casa solar tem 24 horas por dia.
A string retornada é um objeto de string. Para usar a função Substituir () do membro da classe String, a biblioteca de string deve ser incluída no programa (com uma diretiva).
Nota: Todo o código da string deste artigo está na função principal C ++.
Basic_string & Substituir (size_type pos, size_type n1, const gráfico* s)
Esta função de membro é quase a mesma que acima. Ele vai para o índice no POS, mede uma sub-string de comprimento N1 (começando do POS) e o substitui por outra sub-string independente de um ponteiro constante para cargas. A sub-string substituída e a substituição da sub-string não precisam ser do mesmo comprimento. O programa a seguir ilustra o seguinte:
#incluir
#incluir
usando namespace std;
int main ()
String Target = String ("Nosso planeta tem 24 horas por dia.");
const char* substituição = "Solar Home";
resultado da string = alvo.substituir (4, 6, substituição);
cout << result << endl;
retornar 0;
A saída é:
Nossa casa solar tem 24 horas por dia.
Basic_string & Substituir (size_type pos1, size_type n1, const Basic_string & str)
Esta função de membro é semelhante ao acima. No entanto, a string de substituição é um objeto String, instanciado da classe String. O programa a seguir ilustra o seguinte:
#incluir
#incluir
usando namespace std;
int main ()
String Target = String ("Nosso planeta tem 24 horas por dia.");
substituição de string = string ("Solar Home");
resultado da string = alvo.substituir (4, 6, substituição);
cout << result << endl;
retornar 0;
A saída é:
Nossa casa solar tem 24 horas por dia.
Basic_string & Substituir (size_type pos, size_type n1, size_type n2, gráfico c)
Esta função de membro é semelhante ao acima. No entanto, a string de substituição é o mesmo personagem, repetida N2 vezes. Observe que existem quatro parâmetros para esta função. O programa a seguir ilustra seu uso:
#incluir
#incluir
usando namespace std;
int main ()
String Target = String ("Nosso planeta tem 24 horas por dia.");
resultado da string = alvo.substituir (4, 6, 3, 'e');
cout << result << endl;
retornar 0;
A saída é:
Nosso EEE tem 24 horas por dia.
"Planet" foi substituído por três E's (para a Terra).
Basic_string & Substituir (size_type pos, size_type n1, const gráfico* s, size_type n2)
Esta função de membro é semelhante ao acima. No entanto, a corda de substituição é um ponteiro constante para chars, cujos primeiros caracteres N2 são usados para substituição. O programa a seguir ilustra o seguinte:
#incluir
#incluir
usando namespace std;
int main ()
String Target = String ("Nosso planeta tem 24 horas por dia.");
const char* substituição = "mundo da terra";
resultado da string = alvo.substituir (4, 6, substituição, 5);
cout << result << endl;
retornar 0;
A saída é:
Nossa terra tem 24 horas por dia.
Basic_string & Substituir (size_type pos1, size_type n1, const t & t, size_type pos2, size_type n2 = npos)
Esta função de membro é semelhante ao acima. No entanto, a string de substituição é uma matriz de chars cujos caracteres N2 são usados para substituição, começando a partir de uma posição da string de substituição, POS2, que não é necessariamente zero. Se o quarto argumento dessa função estiver ausente, o número de caracteres para substituição será do POS2 até o final da matriz de cargas; Caso contrário, serão caracteres n2 do POS2. O programa a seguir ilustra o seguinte:
#incluir
#incluir
usando namespace std;
int main ()
String Target = String ("Nosso planeta tem 24 horas por dia.");
substituição de char [] = "o mundo da terra";
resultado da string = alvo.substituir (4, 6, substituição, 4, 5);
cout << result << endl;
retornar 0;
A saída é:
Nossa terra tem 24 horas por dia.
Basic_string & Substituir (size_type pos1, size_type n1, const Basic_string & str, size_type pos2, size_type n2 = npos)
Esta função de membro é semelhante ao acima. No entanto, a string de substituição é um objeto String, instanciado da classe String. O código a seguir ilustra o seguinte:
#incluir
#incluir
usando namespace std;
int main ()
String Target = String ("Nosso planeta tem 24 horas por dia.");
substituição de string = string ("o mundo da terra");
resultado da string = alvo.substituir (4, 6, substituição, 4, 5);
cout << result << endl;
retornar 0;
A saída é:
Nossa terra tem 24 horas por dia.
Basic_string & Substituir (const_iterator i1, const_iterator i2, const Basic_string & str)
Essa função de membro vai para o elemento (caractere) da sequência de destino, apontado para, pelo iterador, i1; Em seguida, considera os personagens até o único apontado, pelo iterador, i2. Esse intervalo deve ser substituído por todos os caracteres de um objeto de string, instanciados de uma classe. O programa a seguir ilustra o seguinte:
#incluir
#incluir
usando namespace std;
int main ()
String Target = String ("Nosso planeta tem 24 horas por dia.");
substituição de string = string ("mundo solar");
string :: iterator it1 = alvo.começar();
it1 = it1 + 4;
string :: iterator it2 = alvo.começar();
it2 = it2 + 10;
resultado da string = alvo.substituir (it1, it2, substituição);
cout << result << endl;
retornar 0;
A saída é:
Nosso mundo solar tem 24 horas por dia.
O último elemento do intervalo, apontado pelo segundo iterador, não participou da substituição; Era apenas o delimitador superior.
Dois iteradores, IT1 e IT2, foram usados. Cada um foi obtido da função de membro Begin () da classe String. A função Begin () Membro retorna um iterador, que aponta para o primeiro elemento do objeto String. Para fazê -lo 1 apontar para 'p' de "planeta" no índice 4 da sequência de destino, o IT1 teve que ser aumentado em 4. Para torná -lo2 apontar para "logo após o" planeta "no índice 10 da sequência de destino, o IT2 teve que ser aumentado em 10.
Conclusão
É uma sub-string da lista de um objeto de string, instanciado de uma classe de string, que é considerado para substituição. Uma substring de uma string declarada como matriz de cartas ou ponteiro constante para chars não é considerado para substituição. A string de substituição é outra string independente. A corda inteira literal da string de substituição pode fazer a substituição, ou uma parte dela ainda pode fazer a substituição. A classe C ++ 20 String possui 14 funções sobrecarregadas de membros para substituição, 8 das quais foram explicadas acima.