Aula 7
-----------------------------------
Caracteres, "char", bytes, tipos...
-----------------------------------
Significado de
int maior = 0;
^ ^
tipo nome valor inicial
int a,b=-1,c=0;
Definimos uma variável
do *tipo* int,
com o *nome* maior e
o valor inicial 0
-----------------------------------------
Já vimos os tipos "int" e "float"
Um outro tipo: "char": caracter
- Código ascii
--> printf("%d %c\n",122,122);
--> printf("%d %c\n",'d','d');
--> printf("%n %n\n",'D','d');
main(){
char c;
c=100;
printf("%3d -- %c\n",c,c);
}
variações: int c
conclusão: os caracteres são internamente inteiros
>=0, <=255 (representados num byte)
(nota: os "strings" são vectores de caracteres...)
---------------------------------------------------------
Lendo e escrevendo os caracteres um a um
----------------------------------------
c=getchar(); --> c é inteiro, fim do ficheiro -1
putchar(n);
Exemplo: copia um ficheiro para outro, vai ser usado assim:
a.out < fich1 > fich2
De preferência os caracteres devem ser colocados em inteiros para
serem manipulados.
ex: if('a'>'b') ...
Relação entre caracteres e strings: veremos...
um string é um vector de caracteres
int i,v[10000];
i: var. simples
v vector ("array") de 10000 inteiros...
char c, s[10];
s[0]='0'; s[1]=' '; s[2]='a'; s[3]='i'; s[4]='s'; s[5]=0;
^ ^ ^ ^ ^ ^
(ver teststr.c)
---------------------------------------------------------
Exercício 1
Escrever a tabela de caracteres com os códigos 32 até 127
Formato:
Código Caracter
-------------------
32
33 !
34 "
---------------------------------------------------------
Exercício 2
Copiar todos os caracteres da entrada "padrão" para a saída
"padrão".
...fazendo c=getchar(); putchar(c)... até...
---------------------------------------------------------
Exercício 3
Escreva um programa que leia todos os caracteres de um ficheiro
(a.out < fich) usando getchar() e escreva todos os inteiros
que ocorrem nesse ficheiro, um por linha.
Considera-se "inteiro" toda a sequência máxima de dígitos.
Exemplo:
Ficheiro: Outubro tem 29 dias e a semana 7
Resultado:
29
7
---------------------------------------------------------
Exercício 4
Semelhante ao exercício anterior mas com indicação da linha.
Exemplo:
Ficheiro: Outubro
tem 29 dias
e a semana 7
Resultado:
linha 2: 29
linha 3: 7
#define FALSO 0
typedef int booleano
---------------------------------------------------------
Exercício 5
Num ficheiro html um comando é uma sequência com a forma
<........>
Escreva um programa que elimine os comandos de um ficheiro
html.
Use uma variável comando que tem o valor 1 se se está
dentro de um comando e 0 caso contrário
"comando" lido escreve novo "comando"
---------------------------------------------------
1 != > não 1
1 > não 0
0 != < sim 0
0 < não 1
PC/PI - página reservada - versão 2005.02.08