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.

#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

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