Aula 8Aulas teóricas - notas...Aula 6Aula 7

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

Aula 8Aulas teóricas - notas...Aula 6Aula 7