Las cadenas de caracteres (en C) son vectores de tipo carácter (char) que reciben un tratamiento especial para simular el tipo de datos string que existe en otros lenguajes de programación. Para que un vector de caracteres pueda ser considerado como una cadena de caracteres, el último de los elementos útiles del vector debe ser el carácter nulo (código ASCII 0). Según esto, si se quiere declarar una cadena formada por N caracteres, deberá declararse un vector de N+1 elementos de tipo carácter. En C pueden definirse constantes correspondientes a cadenas de caracteres. Se utilizan comillas dobles para delimitar el principio y el final de la cadena, a diferencia de las comillas simples utilizadas con las constantes de tipo carácter. Por ejemplo, la constante “H” es diferente al carácter constante ‘H’.

Asignación

Mientras que la consulta de los elementos de una cadena de caracteres se realiza de la misma forma que con los vector, las asignaciones tienen ciertas peculiaridades. Como en cualquier mesa, puede asignarse cada carácter de la cadena individualmente. No hemos de olvidar que el último carácter válido debe ser el carácter nulo (‘\0’).

Ejemplo:

char cadena [10]; 
...... 
cadena[0]= ‘c’; 
cadena[1]= ‘a’; 
cadena[2]= ‘s’; 
cadena[3]= ‘c’; 
cadena[4]= ‘\0’;

Fíjese en que las cinco últimas posiciones no se han utilizado. Es más, aunque los hubiésemos asignado algún valor, su contenido sería ignorado. O sea, el contenido del vector en las posiciones posteriores al carácter nulo es ignorado.

La inicialización de una cadena de caracteres durante la declaración puede hacerse de la misma forma que en los vectores normales, aunque se debe incluir el carácter nulo al final de la cadena. Sin embargo, existe un método de inicialización propio de la cadena de caracteres, con el siguiente formato:

char nombre [tam] = "cadena"; -> char nombre[10] = "NURIA";

Utilizando este tipo de inicialización, el carácter nulo es añadido automáticamente al final de la cadena.

Finalmente, la inicialización anterior puede realizarse sin necesidad de especificar el tamaño del vector. En este caso, el compilador se encarga de calcularlo automáticamente, reservando espacio de memoria suficiente para almacenar la cadena, incluyendo el carácter nulo al final.

La cadena vacía

Otra curiosidad de las cadenas de caracteres se refiere a la cadena vacía “ “, que únicamente consta del carácter vacío. Dado que los caracteres posteriores al carácter nulo son ignorados, convertir una cadena con cualquier valor en la cadena vacía es tan sencillo como asignarle el carácter nulo a la posición 0 de la cadena.

Pin It