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