ctype.h – toupper, tolower, isalpha, isdigit em C

Por: Eduardo Casavella

Em algumas situações é preciso determinar se o usuário digitou um caracter de determinado tipo (numérico ou uma letra por exemplo) ou então, é necessário converter um caracter minúsculo em maiúsculo para fazer uma comparação e tomar uma decisão. Para esses e outros casos onde necessitamos trabalhar com caracteres, a linguagem C possui uma biblioteca com funções sob medida para tais situações: ctype.h.

A biblioteca ctype.h contém funções e macros para manipulação de caracteres.

Utilizando as funções desta biblioteca podemos verificar se um caracter é númerico, ou se é maiúsculo, minúsculo, representa espaço em branco etc.

Na listagem abaixo, podemos visualizar as principais funções de ctype.h.
Funções para conversão de caracteres maiúsculos e minúsculos:

tolower
Converte o caracter em minúsculo

toupper
Converte caracter minúsculo em maiúsculo.
Funções para manipulação de caracteres

isalnum
Verifica se o caracter é alfanumérico

isalpha
Verificar se o caracter é uma letra do alfabeto

iscntrl
Verificar se o caracter é um caracter de controle

isdigit
Verificar se o caracter é um digito decimal

isgraph
Verifica se o caracter tem representação gráfica

islower
Verifica se o caracter é minúsculo

isprint
Verifica se o caracter é imprimível.

ispunct
Verifica se o caracter é um ponto

isspace
Verificar se o caracter é um espaço em branco

isupper
Verifica se o caracter é uma letra maiúscula

isxdigit
Verifica se o caracter é um dígito hexadecimal
Vamos elaborar um programa em linguagem C para exemplificar a utilização de algumas funções de ctype.h.
[sourcecode language=”cpp”]
#include
#include
#include //biblioteca p/ as funções isalpha isdigit toupper tolower

int main(void)
{
char letra;
char op;

printf(“Digite uma letra do alfabeto: “);
scanf(“%c”,&letra);

//isalpha verifica se é uma letra do alfabeto
if (isalpha(letra))
{
printf(“\nVoce digitou a letra %c \n\n”,letra);

//toupper transforma em maiuscula
letra = toupper(letra);
printf(“Maiuscula: %c \n\n”,letra);

//tolower transforma em minuscula
letra = tolower(letra);
printf(“Minuscula: %c \n\n”,letra);
}
else
{
printf(“Voce nao digitou uma letra!!!\n”);
}

printf(“\nInforme um numero de 0 a 9: “);
fflush(stdin);
scanf(“%c”,&op);

//isdigit verifica se o caracater recebido é um dígito
if(isdigit(op))
{
printf(“Digito: %c \n\n”,op);
}
else
printf(“Voce nao digitou um numero!!!\n\n”);

system(“pause”);
return 0;
}

[/sourcecode]

 

Telas de execução

Exemplo ctype.c

Tela de execução do exemplo ctype.h

Exemplo ctype.c com valores invalidos

Tela de execução do ctype.h com valores invalidos

Até a próxima!

2 respostas a ctype.h – toupper, tolower, isalpha, isdigit em C