Variables Tipo Caracter

Bueno este tema pertenece a Tipos de Variables, pero ya que es un poco extenso sera un tema individual…

El lenguaje C guarda los caracteres como números de 8 bits de acuerdo a la norma ASCII extendida , que asigna a cada caracter un número comprendido entre 0 y 255 ( un byte de 8 bits)… Asi pues (xD) las variables que vayan alojar caracteres seran definidas:

char c … Sin embargo, también funciona de manera correcta definirla como int c

Esta última opción desperdicia un poco más de memoria que la anterior, pero en algunos casos particulares presenta ciertas ventajas…

Pongamos por caso una función que lee un archivo de texto ubicado en un disco. Dicho archivo puede tener cualquier caracter ASCII de valor comprendido entre 0 y 255. Para que la función pueda avisarme que el archivo ha finalizado deberá enviar un número NO comprendido entre 0 y 255 ( por lo general se usa el -1 , denominado EOF, fin de archivo ó End Of File), en este caso dicho número no puede ser mantenido en una variable del tipo char...

Las variables del tipo carácter también pueden ser inicializadas en su definición:

char c = 97 ; para que c contenga el valor ASCII de la letra “a“, sin embargo esto resulta un poco #apendejador, ya que nos obliga a recodar dichos codigos, la siguiente forma es idéntica a la anterior: char c = ‘a’;

Lamentablemente existen una serie de caracteres que no son imprimibles , en otras palabras que cuando editemos nuestro programa fuente (archivo de texto) nos resultará difícil de asignarlas a una variable ya que el editor las toma como un COMANDO y no como un caracter . Un caso típico sería el de “nueva linea” ó ENTER…

— Secuencias de Escape —

Código Significado Ascii Decimal Ascii Hexadecimal
\n Nueva línea 10 0x0A
\r Retorno de Carro 13 0x0D
\f Nueva página 2 x0C
\t Tabulador horizontal 9 0x09
\b Retroceso 8 0x08
\’ Comilla Simple 39 0x27
\” Comillas 4 0x22
\\ Barra 92 0x5C
\? Interrogación 63 0x3F
\nnn Cualquier carácter (donde nnn es el código ASCII expresado en Octal)
\xnn Cualquier carácter (donde nn es el código ASCII expresado en Hexadecimal)