Arreglos de Caracteres

Una cadena de caracteres es un conjunto de caracteres tratados como una sola unidad. Una cadena puede incluir letras, dígitos y varios caracteres especiales como +, -, / y $. En C, las literales de cadena, o constantes de cadena, se escriben dentro de comillas dobles de la siguiente manera:

          “México, Distrito Federal”
          “Juan Pérez”

Una constante de carácter es un valor representado por un solo carácter entre comillas sencillas. El valor de una constante de carácter es valor entero del carácter en el conjunto de caracteres de la maquina. Por ejemplo, ‘z’ representa el valor entero de z, y ‘\n’ representa el valor entero de nueva línea.

En C, una cadena es un arreglo de caracteres, los cuales terminan con el carácter nulo ‘\0’. Los arreglos de caracteres se declaran de la siguiente manera:

          char color [] = “azul”;  o también
          char color [] = {‘a’,’z’,’u’,’l’,’\0’};

Cuando se define un arreglo de caracteres o cadena, éste debe ser lo suficiente grande para almacenar la cadena y su carácter de terminación nulo. Las definiciones anteriores determinan automáticamente el tamaño de arreglo, basándose en el número de elementos de la lista.

Una cadena puede almacenarse en un arreglo, por medio de scanf. Por ejemplo, la siguiente instrucción almacena el arreglo de caracteres en la variable palabra:

         char palabra[20];
          scanf(“%s”, palabra);

La cadena es almacenada en la variable palabra. Tome en cuenta que la variable es un arreglo y además un apuntador, por lo que no es necesario incluir un & con el argumento palabra. La función scanf leerá caracteres hasta encontrar un espacio, un tabulador o un indicador de nueva línea. Además las cadenas no deberán exceder del número mayor de caracteres que pueda contener incluyendo el carácter nulo.

Por el contrario gets capturara caracteres desde teclado hasta encontrar un fin de línea, de esta forma es posible capturar espacios en blanco que scanf no permitiría.

          gets(palabra);

También es posible imprimir en pantalla las cadenas de caracteres y se puede optar por cualquiera de las dos siguientes funciones:

          printf(“la variable es %s”, palabra); ó también
          puts(palabra);

Otras 3 funciones muy importantes para el manejo de caracteres individuales son: getchar, getche, getch. Las dos primeras funciones getchar() y getch() permite capturar un carácter individual desde teclado, puede usar indistintamente cualquiera. La función getch() realiza la misma tarea que las otras dos con la diferencia de que no deja eco en la pantalla al escribirlo.

          char car;
          car = getchar(car);

y existe además una función que nos permite imprimir un carácter en pantalla:

          putchar(car);

Manejo de cadenas

A continuación veremos algunos ejemplos de lo que podemos realizar con una cadena simple, el siguiente ejemplo crea una cadena de caracteres de 20 posiciones y emplearemos la función gets para capturarla desde teclado y posteriormente contaremos el número de vocales existentes en la frase para finalmente ser mostrado en pantalla.

En este ejemplo además empleamos la función strlen(), que nos permite determinar la cantidad de caracteres que ingresamos en la cadena.

Por ejemplo si ingresamos la cadena:    “la casa azul”, la variable tam tendrá el valor de 12, que son el número de caracteres en la variable cadena.

Te interesa conocer más sobre el manejo de cadenas de caracteres / texto, revisa este link.