Caracteres. David Dharbe 1 1 Wednesday, May 4, 2011 DIM0108.0 - Conceitos e Tcnicas de Programao Introduo
Tipos j vistos: ! int ! float ! arranjos
A linguagem C possui um tipo para representar caracteres.
! Nome do tipo: char ! Como o tipo int, uma faixa de inteiros
Qual a relao entre um caracter e um inteiro?
! Codicao 2 2 Wednesday, May 4, 2011 DIM0108.0 - Conceitos e Tcnicas de Programao Codicao
Um cdigo associado a cada smbolo (ASCII, ISO-Latin-1, Unicode).
Cdicao ASCII [1960]:
! smbolos: " caracteres do alfabeto ingls; " dgitos; " smbolos de pontuao; " smbolos de espaamento: espao, tabulao, quebra de linha, quebra de pgina; " outros smbolos que eram teis quando o cdigo foi criado que no so mais hoje. ! cdigo: " um byte (8 bits), o bit a esquerda sempre zero. " inteiro entre 0 e 127. 3 3 Wednesday, May 4, 2011 DIM0108.0 - Conceitos e Tcnicas de Programao Codicao ASCII: trechos 4 Binrio Decimal Smbolo 0000 0000 0 nulo 0000 1001 9 tabulao 0010 0000 32 espao 0010 0010 34 " 0011 0000 48 0 0011 0001 49 1 0011 1001 57 9 0100 0001 65 A 0100 0010 66 B 0101 1010 90 Z 0110 0001 97 a 0110 0010 98 b 0111 1010 122 z 0111 1111 127 delete 4 Wednesday, May 4, 2011 DIM0108.0 - Conceitos e Tcnicas de Programao Programa exemplo 5 #include <stdio.h> int main (void) { char c, quebra; while (1) { printf("Digite uma tecla: "); scanf("%c%c", &c, &quebra); printf("Simbolo: '%c' ASCII: %i\n", c, c); } return 0; } obs. impresso e leitura formata de caracter so feitas com %c 5 Wednesday, May 4, 2011 DIM0108.0 - Conceitos e Tcnicas de Programao Exerccios
Escreva funes para testar se um caracter
! uma letra maiscula; ! um dgito decimal; ! um dgito hexadecimal;
Escreva funes para converter um caracter, digamos c, em
! o mesmo caracter, em caixa maiscula (o resultado s diferente se c for uma letra minscula); ! no nmero correspondente (assumindo que c um dgito decimal ou hexadecimal). 6 6 Wednesday, May 4, 2011 DIM0108.0 - Conceitos e Tcnicas de Programao 7 7 Wednesday, May 4, 2011 DIM0108.0 - Conceitos e Tcnicas de Programao Exerccio: caa-palavras
Dena uma sub-rotina com a seguinte interface:
! int lookup_word(int n, int m, char board[n][m], int k, char word [k]);
A funo deve testar se a palavra de k letras word encontra-se na
matriz de palavras board. ! A busca deve ser feita nas oito direes.
Dica: dena uma sub-rotina diferente que testa a presena da
palavra para cada uma das oito direes. 8 8 Wednesday, May 4, 2011