Вы находитесь на странице: 1из 3

Trabalhando com caracteres, a biblioteca CTYPE

Um dos fatores importantes de uma boa programao saber lidar com os caracteres, principalmente, tratando-se da linguagem C que case sensitive (diferencia maisculas de minsculas). Nesta pgina, veremos uma biblioteca que lida exatamente com caracteres individuais, a biblioteca ctype.h, prpria da linguagem C, que tem seu correspondente em C++ como cctype. Dentre as funes encontradas nesta biblioteca h aquelas que modificam o estado da letra (maisculas e minsculas) e at mesmo funes que servem para descobrir se o que foi digitado um ponto, vrgula, nmero, espao, ctrl, etc. Primeiramente, vamos as mais comuns que so para converte um caracter em letra maiscula ou minscula. toupper - esta funo recebe um argumento que deve ser um caracter e retorna o caracter correspondente em formato maisculo, se o caracter j for maisculo, a funo no o modifica. tolower - esta funo recebe um argumento que deve ser um caracter e retorna o caracter correspondente em formato minsculo, se o caracter j for minsculo, a funo no o modifica. Como estas funes retornam resultados, estes resultados devem ser guardados dentro de variveis. A melhor parte que podemos fazer isso com a prpria varivel. Simplificando, podemos fazer a varivel X receber ela mesma em maisculo ou minsculo dependendo da funo utilizada. Vejamos o exemplo: Visualizar Codigo Fonte Imprimir?

01.#include <iostream> 02.#include <cstdlib> 03.#include <cctype> 04.//corresponde a ctype.h da linguagem C 05.using namespace std; 06. 07.int main (void){ 08. char letra; 09. cout <<"Digite um caracter: "; 10. cin >> letra; 11. cin.ignore(); 12. letra=toupper (letra); 13. cout <<"A representacao maiuscula do que voce digitou e -> "<<letra; 14. letra=tolower (letra); 15. cout <<"\nA representacao minuscula do que voce digitou e -> "<<letra<<"\n\n"; 16. system ("pause"); 17. return EXIT_SUCCESS; 18.}
Pronto! Como podemos ver aqui, a letra convertida em maiscula e depois em minscula. Dessa forma podemos controlar exatamente o que esperar no programa. Alm dessas funes, h tambm funes que retornam apenas valores booleanos, ou seja, verdadeiro ou falso (true e false) para determinado tipo de caracter. Com isso possvel fazer nosso programa reagir de maneiras diferentes para tipos de caracteres diferentes. isalnum - verifica se o caracter ou inteiro passado como parmetro alfanumrico. Isso inclui todos os nmeros e as letras do alfabeto, tanto maisculas quanto minsculas. isalpha - verifica se o caracter ou inteiro passado como parmetro alfabtico. Isso inclui todas as letras do alfabeto, tanto maisculas quanto minsculas. isdigit - verifica se o caracter ou inteiro passado como parmetro um digito. Isso inclui todos os nmeros.

ispunct - verifica se o caracter ou inteiro passado como parmetro uma pontuao. Isso inclui qualquer tipo de pontuao como . , ? ! ^ ' { } ~ : ;. Porm, no capaz de verificar se uma letra acentuada. isspace - verifica se o caracter ou inteiro passado como parmetro um espao em branco. islower - verifica se o caracter ou inteiro passado como parmetro uma letra minscula isupper - verifica se o caracter ou inteiro passado como parmetro uma letra maiscula iscntrl - verifica se o caracter ou inteiro passado como parmetro um caracter de comando. Isso inclui CTRL, ALT, ENTER, BACKSPACE, etc. isxdigit - verifica se o caracter ou inteiro passado como parmetro compatvel com um nmero hexadecimal. Isso inclui todos os nmero (0 - 9) e qualquer letra entre A e F (no importa se minsculo ou maisculo). Agora, veja abaixo todas estas funes em uma sequncia de if. Este programa determina o que digitado pelo usurio. Visualizar Codigo Fonte Imprimir?

01.#include <iostream> 02.#include <cstdlib> 03.#include <cctype> 04.using namespace std; 05. 06.int main (void){ 07. int letra; 08. cout <<"Digite uma letra: "; 09. letra = getchar (); 10. cout <<"\n\nA letra que voce digitou e:\n"; 11. if (isalnum (letra)) 12. cout <<"\nalfanumerico"; 13. if (isalpha (letra)) 14. cout <<"\nletra"; 15. if (isdigit (letra)) 16. cout <<"\nnumero"; 17. if (ispunct (letra)) 18. cout <<"\npontuacao"; 19. if (isspace (letra)) 20. cout <<"\num espaco em branco"; 21. if (islower(letra)) 22. cout <<"\nminusculo"; 23. if (isupper(letra)) 24. cout <<"\nmaiusculo"; 25. if (iscntrl(letra)) 26. cout <<"\nbotao de controle"; 27. if (isxdigit(letra)) 28. cout <<"\ncapaz para escrita em hexadecimal"; 29. cout <<"\n\n"; 30. system ("pause"); 31. return EXIT_SUCCESS; 32.}

Este programa mostra bem o que cada uma das funes faz. Como todas so funes booleanas, ento, colocamos todas elas dentro dos if. Se for verdadeiro executa a linha logo abaixo. Pronto, este o comeo para mais adiante lidarmos com cadeias de caracteres que so as strings.

Вам также может понравиться