Cómo manipular cadenas con caracteres en c ++

Un formación es una secuencia de variables en C ++ que comparte el mismo nombre y que se hace referencia mediante un índice. El seguimiento Concatenar Entradas programa de dos cuerdas desde el teclado y los concatena en una sola cadena:

// Concatenate - concatenar dos cadenas // con una " - " en el medio # include #incluir #incluir using namespace std - // prototipo declarationsvoid concatString (char szTarget [], const char szSource []) - int main (int nNumberofArgs, char * pszArgs []) {// leídos primera cadena ... szString1 char [256] -cout lt; lt; "Introduzca la cadena # 1:"-cin.getline (szString1, 128) - // ... ahora la segunda cadena ... Char szString2 [128] -cout lt; lt; "Introduzca la cadena # 2:"-cin.getline (szString2, 128) - // ... concatenar una " - " en el primer ... concatString (szString1, " - ") - // ... ahora añadir la segunda cadena ... concatString (szString1, szString2) - // ... y mostrar el resultcout lt; lt; "norte" lt; lt; szString1 lt; lt; endl - // espera hasta que el usuario esté listo antes de la terminación del programa // para permitir al usuario ver el programa resultscout 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 [], char const 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 -} // tachuela en la terminación de nullszTarget [targetIndex] = `` -}

los Concatenar programa lee dos cadenas de caracteres y los añade junto con una ”-“ en el medio.

El programa se inicia mediante la lectura de una cadena desde el teclado. El programa no utiliza la normalidad cin gt; gt; szString1 por dos razones. Primero el cin gt; gt; se detiene el funcionamiento de lectura cuando se encuentra cualquier tipo de espacio en blanco. Caracteres hasta el primer espacio en blanco se lee, el carácter de espacio en blanco se lanza, y los caracteres restantes se dejan en la tolva de entrada para el siguiente cin gt; gt; declaración.

Por lo tanto, si usted fuera a entrar en “el perro”, szString2 se llenaría de “el” y la palabra “perro” se quedaría en el buffer de entrada.

Video: Dev-C++, Clase21- manipulación de cadenas (1)

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

En su lugar, la llamada a obtener línea() introduce una línea entera hasta, pero no incluyendo la nueva línea al final.

Después de leer la primera cadena en szString1 [], el programa añade ”-“ en el extremo llamando concatString (). 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 caracteres copias desde el szSource dentro szTarget comenzando en el nulo de terminación. La declaración final en concatString () hiera un nulo de terminación de la cadena completado.

Un ejemplo de salida del programa aparece como sigue:

Introduzca la cadena # 1:esto es una cadenaIntroduzca la cadena # 2:Esto es una cadenaesto es una cadena - este es un STRINGPress Intro para continuar ...
Artículos Relacionados