Considere la siguiente cadena de destino:
"Bailando en la luna"
'!'Como personaje, se puede agregar a la cadena de destino, para que se convierta en,
"Bailando en la luna!"
La "superficie S" de la subconjocio puede agregarse a la cadena de destino, para que se convierta en,
"Bailar en la superficie de la luna"
La clase de cadena C ++ tiene la función miembro, append (), para agregar. En realidad, hay 9 variantes de esta función miembro en C ++ 20. Tales variantes de funciones se denominan funciones sobrecargadas. Las 9 funciones sobrecargadas se explicarán en este artículo, comenzando con el más simple. La función C ++ String push_back () también se explicará. Las cadenas declaradas como matriz de caracteres o como constante-pone a Chars no se consideran para agregar. Solo las cadenas instanciadas de la clase de cadena se consideran para agregar.
BASIC_STRING & APPEND (const t&T)
Esta función de miembro devuelve la cadena adjunta. Toma como argumento, una matriz de caracteres. El siguiente código ilustra esto:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
Char Chs [] = "'s Surface";
Resultado de cadena = Target.anexar (CHS);
cout << result << endl;
regresar 0;
La salida es:
Bailando en la superficie de la luna
NOTA: Se adjuntan las cadenas originales y devueltas.
BASIC_STRING & APPEND (CONST Gráfico* S)
Esta función miembro es muy similar a la función anterior. Se necesita un puntero constante a Chars como argumento y devuelve la cadena adjunta. El siguiente programa ilustra esto:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
const char* cpc = "'s Surface";
Resultado de cadena = Target.append (CPC);
cout << result << endl;
regresar 0;
La salida es:
Bailando en la superficie de la luna
BASIC_STRING & APPEND (Initializer_list)
Esta función miembro es similar a la anterior, pero toma la lista de cadenas en sí misma como argumento. La lista puede ser una cadena literal en citas dobles, o una secuencia de caracteres, terminando con el carácter NUL (\ 0) en aparatos ortopédicos. La función devuelve la cadena adjunta. El siguiente programa ilustra esto, para la cadena literal en quotas dobles:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
Resultado de cadena = Target.append ("la superficie");
cout << result << endl;
regresar 0;
La salida es:
Bailando en la superficie de la luna
El siguiente programa ilustra esto para la cadena de agregado, como matriz de características:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
Resultado de cadena = Target.append ('\' ',' s ', ",' s ',' u ',' r ',' f ',' a ',' c ',' e ',' \ 0 ');
cout << result << endl;
regresar 0;
La salida es:
Bailando en la superficie de la luna
BASIC_STRING & APPEND (const BASIC_STRING & STR)
Esta función miembro es similar a la anterior, pero agrega todas las listas de otro objeto de cadena instanciado. La función devuelve la cadena adjunta. El siguiente programa ilustra esto (para dos objetos de cadena):
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
String OTROSTR = STRING ("Surface");
string :: iterator it = otros.comenzar();
Resultado de cadena = Target.append (otrosTr);
cout << result << endl;
regresar 0;
La salida es:
Bailando en la superficie de la luna
Basic_string & Append (Inputiterator primero, Inputiterator Last)
Esta función miembro es similar a la anterior, pero para sus argumentos, toma un rango de otro objeto de cadena instanciado, donde "primero" es un iterador que apunta al primer elemento del rango, y "último" es otro iterador que señala justo después del último elemento de la gama. La función devuelve la cadena adjunta. El siguiente programa ilustra esto para dos objetos de cadena:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
String OTROSTR = String ("La superficie de la Tierra no es lisa");
string :: iterator it = otros.comenzar();
string :: iterator fst = it + 9;
string :: iterator lst = it + 19;
Resultado de cadena = Target.append (FST, LST);
cout << result << endl;
regresar 0;
La salida es:
Bailando en la superficie de la luna
Observe cómo se determinaron los iteradores FST y LST.
BASIC_STRING & APPEND (CONST Gráfico* s, size_type n)
Esta función miembro es similar a la anterior, pero agrega los primeros n caracteres de la secuencia de caracteres, apuntada por un plointer constante a Char. La función devuelve la cadena adjunta. El siguiente programa ilustra esto:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
const char* cpc = "'s Surface";
Resultado de cadena = Target.append (CPC, 7);
cout << result << endl;
regresar 0;
La salida es:
Bailando en el surf de la luna
BASIC_STRING & APPEND (const t&T, size_type pos, size_type n = npos)
Esta función miembro es similar a la anterior, pero agrega n caracteres de la secuencia de caracteres que apuntan a, por un punto constante a Char, que comienza desde el índice, POS. La función devuelve la cadena adjunta. El siguiente programa ilustra esto:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
const char* cpc = "'s Surface";
Resultado de cadena = Target.append (CPC, 2, 5);
cout << result << endl;
regresar 0;
La salida es:
Bailando en la luna surf
Si el tercer argumento está ausente, entonces los caracteres se toman de POS hasta el final de su cadena.
BASIC_STRING & APPEND (const BASIC_STRING & STR, size_type pos, size_type n = npos)
Esta función de miembro es similar a la anterior, pero la otra cadena es un objeto de cadena instanciado y no un constante-pone-to-Char. La función devuelve la cadena adjunta. El siguiente programa ilustra esto:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
String OTROSTR = "Surface";
Resultado de cadena = Target.adjunto (otrostr, 2, 5);
cout << result << endl;
regresar 0;
La salida es:
Bailando en la luna surf
Si el tercer argumento está ausente, entonces los caracteres se toman de POS hasta el final de su cadena.
BASIC_STRING & APPEND (size_type n, gráfico c)
Esta función miembro puede agregar el número de el mismo carácter, c. El siguiente programa, ilustra esto:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
char ch = '!';
Resultado de cadena = Target.adjuntar (3, ch);
cout << result << endl;
regresar 0;
La salida es:
Bailando en la luna!!!
Void push_back (gráfico c)
La función push_back () devuelve vacío. Agradece solo un personaje, c. El siguiente programa ilustra esto:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
char ch = '!';
objetivo.push_back (ch);
cout << target << endl;
regresar 0;
La salida es:
Bailando en la luna!
Dado que no se devuelve una nueva cadena, la cadena de destino original debe cambiarse.
Inserción
La clase de cadena también tiene una función miembro, insert (). También es una función sobrecargada de diferentes variantes. Uno de los argumentos principales para la función de inserción es un iterador. Si la función insert () se comporta como la función append (), entonces necesita un iterador que apunte justo después del último carácter de la cadena. Todas las funciones Insert () cambian el objetivo original y no devuelvan la cadena adjunta.
El siguiente programa muestra cómo se adjunta un solo personaje a una cadena de destino, utilizando la función Insert ():
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
string :: iterator it = objetivo.fin();
objetivo.insertar (it, '!');
cout << target << endl;
regresar 0;
La salida es:
Bailando en la luna!
El siguiente programa muestra cómo se agrega una lista de inicializador a una cadena:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
string :: iterator it = objetivo.fin();
objetivo.insert (it, '\' ',' s ', ",' s ',' u ',' r ',' f ',' a ',' c ',' e ',' \ 0 ') ;
cout << target << endl;
regresar 0;
La salida es:
Bailando en la superficie de la luna
En lugar de usar el iterador, la función Insert () puede usar el número, que es uno mayor que el índice máximo. Este número puede ser obtenido por la expresión, stringObj.tamaño(). El siguiente código ilustra esto:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
string :: iterator it = objetivo.fin();
const char* cpc = "'s Surface";
objetivo.insertar (objetivo.size (), CPC);
cout << target << endl;
regresar 0;
La salida es:
Bailando en la superficie de la luna
El siguiente programa es similar al anterior, pero la otra cadena, es un objeto de cadena:
#incluir
#incluir
usando el espacio de nombres STD;
int main ()
String Target = String ("Dancing on the Moon");
string :: iterator it = objetivo.fin();
String OTROSTR = STRING ("Surface");
objetivo.insertar (objetivo.size (), otrostr);
cout << target << endl;
regresar 0;
La salida es:
Bailando en la superficie de la luna
Conclusión
Para agregar a una cadena de destino, use la función miembro de la clase String append (). Hay nueve variantes sobrecargadas de la función de miembro append () en c++. Para agregar solo un personaje, se puede usar la función miembro push_back (). La función de miembro insert () también se puede usar para agregar. En este caso, se debe acceder a la posición, justo después del último carácter de la cadena.