Tipo char en C

Author
Por Darío Rivera
Publicado el en Lenguaje C

En nuestro artículo anterior vimos los tipos de datos en C y explicamos cómo se construye cada uno. El tipo de dato char es un tipo especial de entero que puede ser representado como un caracter. En este post, veremos a fondo este tipo de dato.

char

En C podemos representar un caracter con el tipo char. Estos son llamados también character literals.

char option = 'N';

Sin embargo, un char es en esencia un tipo entero que puede guardar números en un rango desde -127 hasta 128. Veamos el siguiente ejemplo en donde podemos ver como la letra 'a' puede ser representada en decimal, octal, y hexadecimal.

#include <stdio.h>

int main()
{
    char a = 97;

    printf("ASCII Char: %c\n", a);
    printf("ASCII Dec: %d\n", a);
    printf("ASCII Oct: %o\n", a);
    printf("ASCII Hex: %x\n", a);

    return 0;
}

La salida será similar a la siguiente:

ASCII Char: a
ASCII Dec: 97
ASCII Oct: 141
ASCII Hex: 61

Si bien en C no existe un tipo de dato string podemos definir una cadena de caracteres o string literal de la siguiente manera.

char greetings[] = "Hola mundo!";

Nota que debemos utilizar comilla sencilla para definir character literals y comilla doble para definir string literals. Observa el siguiente ejemplo en donde se solicita al usuario por consola que digite S ó N.

int main()
{
    char choice;

    printf("Digite S/N: ");
    scanf("%c", &choice);

    if (choice == 'S')
        printf("Escogiste S\n");
    else if ((choice == 'N'))
        printf("Escogiste N\n");
    else
        printf("Escogiste algo diferente\n");

    return 0;
}

Veamos este otro ejemplo en donde se solicita al usuario que digite su nombre por consola. Nota que si se digitan más de 32 caracteres se trunca la cadena!.

int main()
{
    char buffer[32];

    printf("Type your name: ");
    fgets(buffer,32,stdin);
    printf("Hello, %s",buffer);
    return 0;
}

El anterior ejemplo también muestra también la forma de definir un array o matriz en C. Tema que puedes ver a más detalle en nuestro artículo Arrays en C.


Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.