Las cadenas de caracteres son arrays de datos tipo char, con la característica adicional de que acaban en el carácter nulo \0. Si se da valor al número de elementos de la cadena en su declaración habrá que tener en cuenta este carácter adicional. Por ejemplo para guardar una cadena de 10 caracteres, se debe reservar espacio para 11.
Ejemplo_Arr_3. De uso de cadenas de caracteres.
#include <stdio.h>
int main ()
{
char cad1[]="hola", cad2[20];
printf ("Introduce una cadena de menos de 19 caracteres:");
scanf ("%s", &cad2[0]);
//scanf con %s introduce automáticamente el carácter \0 tras el último carácter de la cadena tecleada
printf("cad1: %s cad2: %s\n", cad1, cad2);
// printf con %s solo muestra los caracteres del array desde el índice 0, hasta que encuentre el carácter \0
return 0;
}
No se pueden hacer asignaciones del tipo:
cad2="hola mundo";
Hay muchas funciones de biblioteca estándar para tratarlas. Por ejemplo, para asignar valor a una cadena tras su declaración se puede usar la función strcpy (para su uso hay que incluir en el programa el fichero de cabecera string.h):
strcpy (cad2, "hola mundo");
Ya hemos visto funciones que permiten la captura desde entrada estándar (scanf) o muestran en la salida estándar (printf) cadenas de caracteres. Aquí vamos a añadir dos que pueden resultar útiles: