También tenemos un tipo de datos que nos permite almacenar una única letra (ya veremos que manipular una cadena de texto completa es relativamente complicado). Es el tipo “char”:
char letra;
Asignar valores es sencillo:
letra = 'a';
(hay que destacar que se usa una comilla simple en vez de comillas dobles). Mostrarlos en pantalla también es fácil:
printf("%c", letra);
Así, un programa que leyera una letra tecleada por el usuario, fijara otra y mostrara ambas podría ser:
/*---------------------------*/
/* Ejemplo en C nº 13: */
/* c013.c */
/* */
/* Tipo de datos char */
/* */
/* Curso de C, */
/* Nacho Cabanes */
/*---------------------------*/
#include
int main() {
char letra1, letra2;
printf("Teclea una letra ");
scanf("%c", &letra1);
letra2 = 'a';
printf("La letra que has tecleado es %c y la prefijada es %c",
letra1, letra2);
return 0;
}
Al igual que ocurría con expresiones como %d, que tenían un significado especial, ocurre lo mismo con ciertos caracteres, que nos permiten hacer cosas como bajar a la línea siguiente o mostrar las comillas en pantalla.
Son las siguientes:
Secuencia |
Significado |
\a |
Emite un pitido |
\b |
Retroceso (permite borrar el último carácter) |
\f |
Avance de página (expulsa una hoja en la impresora) |
\n |
Avanza de línea (salta a la línea siguiente) |
\r |
Retorno de carro (va al principio de la línea) |
\t |
Salto de tabulación horizontal |
\v |
Salto de tabulación vertical |
\' |
Muestra una comilla simple |
\" |
Muestra una comilla doble |
\\ |
Muestra una barra invertida |
\0 |
Carácter nulo (NULL) |
\7 |
Emite un pitido (igual que \a) |
\ddd |
Un valor en octal |
\xddd |
Un valor en hexadecimal |
Ejercicio propuesto: Crear un programa que pida al usuario que teclee cuatro letras y las muestre en pantalla juntas, pero en orden inverso, y entre comillas dobles. Por ejemplo si las letras que se teclean son a, l, o, h, escribiría "hola".
En el lenguaje C, no existe un tipo de datos para representar una cadena de texto. Eso supone que su manejo no sea tan sencillo como el de los números enteros, numeros reales y las letras. Deberemos tratarla como un bloque de varias letras. Por eso lo veremos más adelante.