Cómo manipular cadenas con carácter en c ++

Un array es una secuencia de variables en C ++ que comparte el mismo nombre y que se referencia usando un índice. El seguimiento Concatenar programa introduce dos cadenas desde el teclado y los concatena en una sola cadena:

// Concatenate - concatenar dos cadenas // con un "-" en el medio # include #include #include using namespace std - // prototipo declarationsvoid concatString (char szTarget [], const char szSource []) - int main (int nNumberofArgs, char * pszArgs []) {// leen primera cadena ... Char szString1 [256] -cout lt; lt; "Introduzca cadena # 1:" - cin.getline (szString1, 128) - // ... ahora la segunda cadena ... Char szString2 [128] -cout lt; lt; "Introduzca cadena # 2:" - cin.getline (szString2, 128) - // ... concatenar un "-" en la primera ... concatString (szString1, "-") - // ... ahora añadir la segunda cadena ... concatString (szString1, szString2) - // ... y mostrar el resultcout lt; lt; " n" lt; lt; szString1 lt; lt; endl - // espera hasta que el usuario esté listo antes del programa // terminar para permitir al usuario ver el resultscout programa lt; lt; "Pulse Intro para continuar ..." lt; lt; endl-cin.ignore (10, ' n') - cin.get () - retorno 0 -} // concatString - concatenar la cadena szSource // en el extremo de la szTarget stringvoid concatString (char szTarget [], const char szSource []) {// encontrar el final de la primera stringint targetIndex = 0-while (szTarget [targetIndex]) {targetIndex ++ -} // virar el segundo en el extremo de la firstint sourceIndex = 0-while (szSource [sourceIndex] ) {szTarget [targetIndex] = szSource [sourceIndex] -targetIndex ++ - sourceIndex ++ -} // pegajosidad en la terminación nullszTarget [targetIndex] = ' 0'-}

los Concatenar programa lee dos cadenas de caracteres y los añade junto con una "-" en el centro.

El programa comienza por la lectura de una cadena desde el teclado. El programa no utiliza el normalidad cin >> szString1 por dos razones. En primer lugar, la cin >> la operación se detiene la lectura cuando se encuentra cualquier tipo de espacios en blanco. Personajes hasta el primer espacio en blanco se lee, el carácter de espacio en blanco se lanza, y los caracteres restantes se quedan en la tolva de entrada para la próxima cin >> comunicado.

Por lo tanto, si usted fuera a entrar en " el perro # 148 ;, szString2 se llenaría de " el " y la palabra " Perro " se queda en la memoria intermedia de entrada.

La segunda razón es que la getline () permite al programador especificar el tamaño de la memoria intermedia. La llamada a getline (szString2, 128) no leerá más de 128 bytes, no importa cuántos son de entrada.

En su lugar, la llamada a getline () entradas una línea completa hasta, pero sin incluir la nueva línea al final.

Después de leer la primera cadena en szString1 [], el programa anexa "-" en el extremo llamando concatString (). Se concatena la segunda cadena llamando concatString () con szString2 [].

los concatString () función acepta una cadena de destino, szTarget, y una cadena de origen, szSource. La función comienza en los escaneos szTarget para el carácter nulo de terminación, que almacena en targetIndex. La función entra entonces en un segundo bucle en el que se copia personajes de la szSource dentro szTarget empezando por el nulo de terminación. La declaración final en concatString () abofetea un nulo de terminación de la cadena completa.

Un ejemplo de salida del programa aparece como sigue:

Introduzca cadena # 1:esto es una cadenaIntroduzca cadena # 2:ESTO ES UNA CADENAesto es una cadena - ESTE ES UN STRINGPress Intro para continuar ...



» » » » Cómo manipular cadenas con carácter en c ++