Leitura de String

Publicado por Fagner Amaral de Souza Candido 23/02/2008

[ Hits: 9.648 ]

Homepage: https://github.com/fagnercandido

Download leString.c




Sempre que precisamos ler uma string via teclado é uma dificuldade. O código que disponibilizo tenta sanar este inconveniente.

Por alocação dinâmica, ele vai realocando caracter por caracter para compor a string.

Qualquer dúvida, crítica ou afins postem.

Desde já agradeço,

Abraços

  



Esconder código-fonte

// Autor : Fagner Candido

/*
 Sintese
   Objetivo: Ler uma String
 
   Entrada : uma String.

   Saida   : A String

   Data : 30/01/2008
*/ 
#include <stdio.h>
#include <stdlib.h>
int main()
{
   char fraseInicial;
   char *fraseFinal;
   int contadorLaco=0, contadorAlocacao = 2;
   if((fraseFinal = (char *)malloc(contadorAlocacao*sizeof(char *))) == NULL)
   {
      printf("ERRO NA ALOCACAO!");
      getchar();
      exit(1);
   }
   printf("Digite o Nome: ");
   fraseInicial=getchar();
   /* Dentro do laço é feita a leitura caracter a caracter
        e à realocação, para não haver desperdício de espaço.
   */
   while(fraseInicial!='\n')
   {
      fraseFinal[contadorLaco]=fraseInicial;
      contadorLaco++;
      contadorAlocacao++;
           fraseFinal = realloc(fraseFinal, contadorAlocacao*sizeof(char));
      fraseInicial=getchar();
   }
   fraseFinal[contadorLaco]='{FONTE}';
   printf(fraseFinal);
}

Scripts recomendados

Fila, pilha e lista encadeada

Entendendo a função fork()

Função strncat

Lista Simplesmente Encadeada

Arvore AVL


  

Comentários
[1] Comentário enviado por elgio em 26/02/2008 - 09:54h

fraseFinal[contadorLaco]='{FONTE}';

Problema antigo do VOL. Toda a vez que se digita CONTRA-BARRA ZERO ele coloca isto no lugar.

Mas veja que um simples:
fraseFinal[contadorLaco]= 0;

tem o mesmo efeito.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts