6.2 Literales e inicialización de cadenas


Los literales tipo cadena son de la forma

	 "texto entre comillas"

Al declarar una vector de caracteres, se le puede inicializar con un literal:

	char texto [4] = "abc";


Pero NO se puede hacer una asignación de ese tipo en una sentencia:

	texto = "xyz";	/* ERROR */

En su lugar, hay que emplear ciertas funciones de biblioteca.


Tres formas equivalentes de inicializar una cadena:

char hola [5] = { 'h', 'o', 'l', 'a', 0 };

char hola [5] = "hola";

main()
{
	char hola [5];
	hola[0] = ‘h’;
	hola[1] = ‘o’;
	hola[2] = ‘l’;
	hola[3] = ‘a’;
	hola[4] = 0;
}


Obsérvese que una cadena de N elementos es capaz de almacenar un texto de N-1 caracteres (el último siempre ha de ser un cero).

No importa que un vector de caracteres contenga una cadena de menos letras, el carácter cero marca el final de la cadena.

Lo que sí es un error peligroso (y además no lo detecta siempre el compilador) es intentar asignarle a un vector de caracteres una cadena de mayor tamaño.
Hay que cuidar mucho que las cadenas queden dentro del espacio reservado para ellas.