Una generalización del manejo de caracteres es el tipo cadena de caracteres,que se utiliza para la representacion de de varias cadenas de caracteres, gracias al manejo de cadenas de caracteres en C vamos a poder realizar oepraciones con dichas cadenas, tales como copiarlas, comparar una cadena con otras, medir su longitud, etc.
Como se declara una cadena de caracteres
Cuando se va a declarar una cadena, este proceso se hace como un array: char texto[20];
Al igual que en los arrays no se podrá insertar más de 20 elementos en la cadena. Para distinguir una cadena de caracteres de los caracteres individuales, se usa comillas dobles (“) y en el caso de los caracteres individuales se usan comillas simples (‘).
Ejemplo:
El título de un libro y el nombre de su autor, son datos de tipo cadena.
Título…: “La Odisea” (cadena de 9 caracteres)
Autor….: “Homero” (cadena de 6 caracteres)
Obsérvese que, en la cadena “La Odisea” , el carácter espacio en blanco también se cuenta.
El lenguaje C no incorpora operadores en el manejos de cadenas de caracteres, es por ello que el compilador del lenguaje C proporciona una libreria (string.h), esta contiene funciones que facilitan la utilizacion de la misma.
Funciones básicas para el manejo de cadenas de la librería string.
- gets (char *cadena), Lee de teclado una cadena de caracteres y la introduce a partir de la dirección dada por ‘cadena’.
- puts (char *cadena), Imprime en pantalla la cadena de caracteres que viene a partir de la dirección dada por ‘cadena’.
- strlen (char *cadena), Devuelve la longitud de la cadena de caracteres que viene a partir de la dirección dada por ‘cadena’. Devuelve la longitud de la cadena.
- strcat (char *cadena1, char *cadena2), Concatena la cadena de caracteres dada por ‘cadena1’ con la ‘cadena2’, es decir, añade al final de ‘cadena1’ la ‘cadena2’.
- strcmp (char *cadena1, char *cadena2), Compara la cadena de caracteres dada por ‘cadena1’ con la ‘cadena2’.
- strcpy (char *cadena1, char *cadena2), Copia la cadena de caracteres dada por ‘cadena1’ en la ‘cadena2’.