Programação
 › Algoritmo  › C/C++  › Java
Web
 › HTML/XHTML  › JavaScript  › PHP
Sistema Operacional
 › Comandos de DOS  › Windows  › Linux  › Mac/BSD
Office
 › Word / Writer  › Excel / Calc
Áreas do Site
 › Download  › Fórum  › Blog
Recomendamos
Computadores e Informática em Lisboa
TI Expert » Programação » C/C++ » Trabalhando com Caracteres, a biblioteca CTYPE

Trabalhando com caracteres, a biblioteca CTYPE

Um dos fatores importantes de uma boa programação é saber lidar com os caracteres, principalmente, tratando-se da linguagem C que é case sensitive (diferencia maiúsculas de minúsculas).

Nesta página, veremos uma biblioteca que lida exatamente com caracteres individuais, a biblioteca ctype.h, própria da linguagem C, que tem seu correspondente em C++ como cctype. Dentre as funções encontradas nesta biblioteca há aquelas que modificam o estado da letra (maiúsculas e minúsculas) e até mesmo funções que servem para descobrir se o que foi digitado é um ponto, vírgula, número, espaço, ctrl, etc.

Primeiramente, vamos as mais comuns que são para converte um caracter em letra maiúscula ou minúscula.

toupper - esta função recebe um argumento que deve ser um caracter e retorna o caracter correspondente em formato maiúsculo, se o caracter já for maiúsculo, a função não o modifica.

tolower - esta função recebe um argumento que deve ser um caracter e retorna o caracter correspondente em formato minúsculo, se o caracter já for minúsculo, a função não o modifica.

Como estas funções retornam resultados, estes resultados devem ser guardados dentro de variáveis. A melhor parte que podemos fazer isso com a própria variável. Simplificando, podemos fazer a variável X receber ela mesma em maiúsculo ou minúsculo dependendo da função utilizada. Vejamos o exemplo:

#include <iostream>
#include <cstdlib>
#include <cctype>
//corresponde a ctype.h da linguagem C
using namespace std;

int main (void){
    char letra;
    cout <<"Digite um caracter: ";
    cin >> letra;
    cin.ignore();
    letra=toupper (letra);
    cout <<"A representacao maiuscula do que voce digitou e -> "<<letra;
    letra=tolower (letra);
    cout <<"\nA representacao minuscula do que voce digitou e -> "<<letra<<"\n\n";
    system ("pause");
    return EXIT_SUCCESS;
} 

Pronto! Como podemos ver aqui, a letra é convertida em maiúscula e depois em minúscula. Dessa forma podemos controlar exatamente o que esperar no programa.

Além dessas funções, há também funções que retornam apenas valores booleanos, ou seja, verdadeiro ou falso (true e false) para determinado tipo de caracter. Com isso é possível fazer nosso programa reagir de maneiras diferentes para tipos de caracteres diferentes.

isalnum - verifica se o caracter ou inteiro passado como parâmetro é alfanumérico. Isso inclui todos os números e as letras do alfabeto, tanto maiúsculas quanto minúsculas.

isalpha - verifica se o caracter ou inteiro passado como parâmetro é alfabético. Isso inclui todas as letras do alfabeto, tanto maiúsculas quanto minúsculas.

isdigit - verifica se o caracter ou inteiro passado como parâmetro é um digito. Isso inclui todos os números.

ispunct - verifica se o caracter ou inteiro passado como parâmetro é uma pontuação. Isso inclui qualquer tipo de pontuação como . , ? ! ^ ' { } ~ : ;. Porém, não é capaz de verificar se uma letra é acentuada.

isspace - verifica se o caracter ou inteiro passado como parâmetro é um espaço em branco.

islower - verifica se o caracter ou inteiro passado como parâmetro é uma letra minúscula

isupper - verifica se o caracter ou inteiro passado como parâmetro é uma letra maiúscula

iscntrl - verifica se o caracter ou inteiro passado como parâmetro é um caracter de comando. Isso inclui CTRL, ALT, ENTER, BACKSPACE, etc.

isxdigit - verifica se o caracter ou inteiro passado como parâmetro é compatível com um número hexadecimal. Isso inclui todos os número (0 - 9) e qualquer letra entre A e F (não importa se minúsculo ou maiúsculo).

Agora, veja abaixo todas estas funções em uma sequência de if. Este programa determina o que é digitado pelo usuário.

#include <iostream>
#include <cstdlib>
#include <cctype>
using namespace std;

int main (void){
    int letra;
    cout <<"Digite uma letra: ";
    letra = getchar ();
    cout <<"\n\nA letra que voce digitou e:\n";
    if (isalnum (letra))
        cout <<"\nalfanumerico";
    if (isalpha (letra))
        cout <<"\nletra";
    if (isdigit (letra))
        cout <<"\nnumero";
    if (ispunct (letra))
        cout <<"\npontuacao";
    if (isspace (letra))
        cout <<"\num espaco em branco";
    if (islower(letra))
        cout <<"\nminusculo";
    if (isupper(letra))
        cout <<"\nmaiusculo";
    if (iscntrl(letra))
        cout <<"\nbotao de controle";
    if (isxdigit(letra))
        cout <<"\ncapaz para escrita em hexadecimal";
    cout <<"\n\n";
    system ("pause");
    return EXIT_SUCCESS;
}
Faça o Download deste Código

Este programa mostra bem o que cada uma das funções faz. Como todas são funções booleanas, então, colocamos todas elas dentro dos if. Se for verdadeiro executa a linha logo abaixo. Pronto, este é o começo para mais adiante lidarmos com cadeias de caracteres que são as strings.

Creative Commons License
Autor: Denys William Xavier
Este artigo está sob Licença Creative Commons.

Faça o download da versão em PDF Indique nosso site Gostou?
Indique nosso site!
Este artigo foi
lido 76539 vezes
Bookmark e Compartilhe

Páginas Relacionadas

Enquete
O Google Chrome OS irá desbancar o Microsoft Windows 7?
» ProgramaçãoAlgorítmo | C/C++ | Java

» WebHTML/XHTML | JavaScript | PHP

» Sistema OperacionalComandos de DOS | Windows | Linux | Mac/BSD

» OfficeWord/Wirter | Excel/Calc

» Áreas do SiteDownloads | Fórum | Blog