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