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.
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>//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;
}
Telas de execução
Até a próxima!


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