C++ Cadenas
C++ proporciona los siguientes dos tipos de representación de cadenas:
- Cadenas de estilo C
- El tipo de clase string introducido por C++
Cadenas de estilo C
Las cadenas de estilo C se originaron en el lenguaje C y continúan siendo compatibles en C++. Las cadenas son en realidad un array unidimensional de caracteres que usanullun carácter nulo\0como terminación.
La siguiente declaración e inicialización crea unaEJEMPLOcadena. Dado que se almacena un carácter nulo al final del array, el tamaño del array de caracteres es una unidad mayor que elEJEMPLOnúmero de caracteres de la palabra.
char site[7] = {'R', 'U', 'N', 'O', 'O', 'B', '\0'};
De acuerdo con las reglas de inicialización de arrays, puede escribir la declaración anterior de la siguiente manera:
char site[] = "EJEMPLO";
La siguiente es la representación en memoria de las cadenas definidas en C/C++:
De hecho, no necesita poner elnullcarácter al final de la constante de cadena. El compilador de C++, al inicializar el array, lo pondrá automáticamente\0al final de la cadena.
Ejemplo
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Ejemplo: EJEMPLO
C++ tiene una gran cantidad de funciones para manipular cadenas terminadas en null:
| No. | Función y propósito |
|---|---|
| 1 | strcpy(s1, s2); Copia la cadena s2 en la cadena s1. |
| 2 | strcat(s1, s2); Concatena la cadena s2 al final de la cadena s1. Las cadenas también se pueden concatenar usando el+signo +, por ejemplo: string str1 = "ejemplo"; string str2 = "google"; string str = str1 + str2; |
| 3 | strlen(s1); Devuelve la longitud de la cadena s1. |
| 4 | strcmp(s1, s2); Si s1 y s2 son iguales, devuelve 0; si s1<s2, devuelve un valor menor que 0; si s1>s2, devuelve un valor mayor que 0. |
| 5 | strchr(s1, ch); Devuelve un puntero a la primera aparición del carácter ch en la cadena s1. |
| 6 | strstr(s1, s2); Devuelve un puntero a la primera aparición de la cadena s2 en la cadena s1. |
El siguiente ejemplo utiliza algunas de las funciones mencionadas anteriormente:
Ejemplo
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
strcpy( str3, str1) : ejemplo strcat( str1, str2): ejemplogoogle strlen(str1) : 12
La clase String en C++
La biblioteca estándar de C++ proporciona lastringclase string, que admite todas las operaciones anteriores y además añade más funcionalidades. Aprenderemos sobre esta clase en la biblioteca estándar de C++. Ahora veamos primero el siguiente ejemplo:
Ahora quizás todavía no pueda comprender este ejemplo a fondo, porque hasta ahora no hemos hablado de clases y objetos. Por lo tanto, por ahora puede echar un vistazo superficial a este ejemplo, y volver a entenderlo más tarde cuando haya comprendido los conceptos de orientación a objetos.
Ejemplo
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
str3 : ejemplo str1 + str2 : ejemplogoogle str3.size() : 12Otras extensiones