Leitura de String
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
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
Descrição
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
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
// 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]='\0';
printf(fraseFinal);
}
// 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]='\0'; printf(fraseFinal); }';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.