sábado, 2 de março de 2013

Ponteiro tipo char para imprimir um número indeterminado de caracteres

Uma habilidade muito comum e exigido na linguagem C é a manipulação de caracteres. Como a declaração da variável é do tipo char, é preciso tratar caracter a caracter ao invés da string toda.

O exemplo abaixo declara um ponteiro do tipo char e é atribuído palavras, portanto, contém inclusive espaços.

O laço while analisa o indíce do ponteiro que incrementado antes do fim do bloco verificando se chegou no fim da cadeia de caracteres indicada por '\0'.

A cada vez que o caracter é impresso, o comando printf adiciona um espaço pela ação de "%c ".

# include <stdio.h>
# include <unistd.h>

int main()
{
  int i;
  char *vetor;

  vetor="Este ponteiro de nome vetor passa a armazenar uma frase que poderia ser muito maior do que esta.";
  
  i=0;
  while (vetor[i] != '\0')
  {
    printf ("%c ", vetor[i]);
    i++;    
  }

  printf("\n");

  return 0;
}

O resultado é exibido abaixo:

E s t e p o n t e i r o d e n o m e v e t o r p a s s a a a r m a z e n a r u m a f r a s e q u e p o d e r i a s e r m u i t o m a i o r d o q u e e s t a .