Aunque C no incorpora en su definición operadores por la utilización de cadenas, todos los compiladores de C incorporan una librería estándar (string.h) con funciones para facilitar la su utilización.
Algunas de ellas son:
- strlan para obtener la longitud de la cadena, sin contar el carácter nulo.
- strcpy para copiar una cadena en otra
- strcado para concatenar dos cadenas
- strncat para concatenar n caracteres
- strcmp para comparar dos cadenas
- strncmp para comparar n caracteres
- strchr para buscar un carácter en una cadena de caracteres
- strrchr para buscar un carácter dentro de una cadena de caracteres (desde el final)
- strstr para buscar una subcadena en una cadena de caracteres
- strpbrk busca la primera ocurrencia de cualquier carácter de una subcadena dentro de una cadena de caracteres
strlen()
Esta función calcula la longitud de una cadena de caracteres. La longitud de una cadena de caracteres es un entero que indica el número de caracteres que forma parte de la cadena, excluyendo el carácter nulo del final.
strcat() y strncat()
Estas funciones se utilizan para concatenar dos cadenas de caracteres. Cuando se concatienen dos cadenas, los contenidos de la segunda cadena se copian al final de la primera. Es importante que la primera cadena tenga definida una longitud suficiente como para almacenar la cadena concatenada. Cuando no es necesario concatenar la segunda cadena completa, deberíamos utilizar la función strncat(). Esta función concatena en la primera cadena sólo los n primeros caracteres de la segunda cadena.
strcmp() y strncmp()
Estas funciones se utilizan para comparar dos cadenas de caracteres. La comparación se hace carácter a caracteres. Cada función devuelve un valor que depende del resultado de la comparación. El valor devuelto es:
- 0 si las cadenas son idénticas (iguales caracteres y longitud)
- < 0 si la primera cadena precede alfabéticamente a la segunda
- > 0 si la segunda cadena precede alfabéticamente a la primera
La función strncmp() necesita un tercer argumento, n, que especifica el número de caracteres en comparar. Así por ejemplo la llamada a la función strncmp(“Morris”, “Morrison”, 6) devolvería que las dos cadenas son iguales. Para más información sobre estas y otras funciones, consultar la ayuda de la librería.
Entrada y salida
Existe un formato especial %s que puede utilizarse en las funciones scanf y printf. Por ejemplo, la siguiente sentencia leerá una cadena de caracteres en la variable cad. Sólo se asignarán caracteres mientras no sean caracteres blancos, tabuladores o saltos de línea. Por tanto, la utilización de %s sólo tendrá sentido para la lectura de palabras.
char cad [20];
.....
scanf (“%s”, cad);
Fíjese que no se ha utilizado el símbolo & antes de la variable cad.
La librería estándar de entrada y salida (stdio.h) proporciona además las funciones gets y puts, que permiten leer de teclado y mostrar por pantalla una cadena de cadena de caracteres completa, hasta encontrar un salto de línea.