String c ++ substitua

String c ++ substitua
String C ++ Substitua as ofertas pela localização de uma sub-string específica em uma string de destino e depois substituí-la. Uma string pode ser criada de duas maneiras principais: usando um ponteiro de personagem constante (matriz char) ou instantando -o da classe String. A classe String tem uma função de membro substituir (). Isso faz a localização e a substituição. A localização e a substituição são feitas com objetos instantados de string e não criados usando um ponteiro de caractere constante.

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.