C Cadenas
En el lenguaje C, una cadena es en realidad una matriz unidimensional de caracteres que usa el carácter nulo\0como terminación. Por lo tanto,\0se utiliza para marcar el final de la cadena.
El carácter nulo (Null character) también se llama terminador, abreviadoNUL, es un carácter de control con un valor de00,\0es un carácter de escape, lo que significa que le dice al compilador que no es el carácter0, sino el carácter nulo.
La siguiente declaración e inicialización crea unaEJEMPLOcadena. Dado que el carácter nulo se almacena al final de la matriz,\0el tamaño de la matriz de caracteres es mayor que la palabra enEJEMPLOun carácter.
char site[7] = {'R', 'U', 'N', 'O', 'O', 'B', '\0'};
De acuerdo con las reglas de inicialización de matrices, 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 es necesario ponernullel carácter al final de la constante de cadena. El compilador de C colocará automáticamente\0al final de la cadena. Intentemos mostrar la cadena anterior:
Ejemplo
Cuando el código anterior se compila y ejecuta, produce el siguiente resultado:
Ejemplo: EJEMPLO
En C hay muchas funciones para manipular cadenas:
| 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. |
| 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 anteriores:
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
Puede encontrar más funciones relacionadas con cadenas en la biblioteca estándar de C.
Otras extensiones