Anterior Home Siguiente

Cadenas de Caracteres

Una cadena de caracteres es un arreglo unidimensional, en el cual todos sus elementos son del tipo char: La declaración típica de una cadena de caracteres es:

char cadena[10];

Asignación de valores a una cadena

Se pueden asignar valores a una cadena al momento de declararla de la siguiente manera:

char cadena1[10]="ingenieria";

char cadena2[10]="cadenetas";

En el segundo ejemplo cadena2 se ha iniciado con las 6 letras de la palabra "cadena", y el séptimo elemento es el caracter nulo (\0) cual el cual C finaliza todas las cadenas.

cadena2[10]:
cadenetas\0

Si el tamaño de la cadena asignada a un arreglo de caracteres excede el largo del arreglo, los carácteres en exceso son ignorados:

char cadena3[5]="informatica";

En este sólo los primeros 5 caracteres son asignados a cadena3, y los 5 restantes son ignorados:

cadena3[5]:
infor

En cambio si la cadena asiganda al arreglo es más corta que el tamaño de este, los elementos restantes quedan inicializados con el carácter nulo (\0):

char cadena4[10]="cadena";

cadena4[10]:
cadena\0\0\0\0

También se pueden asignar valores a una cadena de caracteres se después de declarada, pero hay que tener el siguiente cuidado:

Uno tendría la tentación de asignar valores a una cadena de la siguiente manera:

cadena="Ester";

La manera correcta de asignar valores a una cadena previamente declarada es la siguiente:

sprintf(cadena,"%s","Ester");

Ahora si se quiere asignar valores a un elemento determinado de la cadena, se debe hacer de la siguiente manera:

cadena[3]='r';

Con lo cual se esta asignando el carcater 'r' al 4º elemento del arreglo de caracteres cadena (recuerde que el primer elemento es el que tiene índice 0).

Asignar valores a un cadena vía teclado se puede realizar de la siguiente manera.

scanf("%s",cadena);

No se utiliza el & para asignar valor a la variable cadena. El & se usa cuando se quiere asignar valor a un elemento determinado de la cadena, ejemplo:

scanf("%c",cadena[4]);

con lo cual se esta asignando un valor al 3er elemento de la cadena cadena.

Al usar la sentencia scanf se tiene el inconveniente de que si se quiere introducir una cadena con varias palabras, y por lo tanto se utilizan espacios, la sentencia scanf solo tomara la primera palabra que se introduzca. O sea si se ingresa las siguiente frase:

"Hola Mundo C"

El valor de la cadena ingresada sera solamente "Hola".

Para poder ingresar una frase de varias palabras en una cadena de caracteres, se puede utilizar la siguiente sentencia:

gets(cadena);


Arreglos de cadenas de caracteres

Los elementos de un arreglo pueden ser a la vez arreglos de caracteres, por ejemplo:

char nombre[100][30];

es un arreglo de 100 elementos, cada uno de los cuales posee espacio para 30 caracteres.

char nombre[10][5][30];

es un arreglo de 10 filas con 5 registros, cada una de las cuales puede tener 30 caracteres.


Anterior Home Siguiente



© 2000 Made in Bufoland