Jump to content


Photo

Qual é O Erro Do Programa ?


  • Faça o login para participar
2 replies to this topic

#1 Rômulo Costa

Rômulo Costa

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Não informado

Posted 14/04/2007, 11:33

Galera....

Sou novo em Linguagem C, mas estou bem interessado em aprender.
Tava um dia em casa sem fazer nada, e acabei criando esse programinha simples pra poder pesquisar tal caracteres em uma frase e depois substituir esse caracter pesquisado por outro, apenas usando comando FOR e IF.

Consegui fazer com que o usuario pesquisasse tal caracter na frase e o programa imprimisse o resultado de quantos caracter tem na frase, mas na hora de modificar ele nao modifica, parece que o programa pula a linha do comando de leitura.

esse é o codigo:
#include <stdio.h>
int main()
{
int j, contador, contador2, jj;
char frase[100], buscar, altera;

printf("Digite uma frase: ");
gets(frase);
contador=0;
printf("\n\nA frase original eh: %s\n\n", frase);
printf("Qual letra voce deseja buscar na frase :");
scanf("%c",&buscar);
/*Aqui ele pesquisa na frase a letra pesquisada pelo usuario*/
for(j=0;frase[j] != '';j++)
 {
	if(frase[j]== buscar)
	{
	contador=contador+1;
	}
 }
printf("\n\nNa frase original existe %d letras %c", contador, buscar);  /*O programa imprime até aqui certinho*/

printf("\n\nPor qual letra voce deseja alterar a letra :");
scanf("%c",&altera);  /*aqui parece que o programa pula essa parte e nem dá o comando de leitura pro usuario digitar*/
for(jj=0;frase[jj] != '';jj++)
 {
	if(frase[jj]== buscar)
	{
	frase[jj] = altera;
	}
 }
printf("\n\nVoce fez alteracao(oes) de %c para %c", buscar, altera);
printf("\n\n\nO numero de letras modificados eh de %d ", contador);
printf("\n\nA frase modificada ficou:\n%s", frase);
return 0;
}



Por que será que ta acontecendo isso galera ?
estou usando o Turbo C++ pra compilar, faz alguma diferença?
vlw...
Espero que possam me ajudar.

#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 14/04/2007, 12:54

#include <stdio.h>

int main()
{
	unsigned int j, contador, contador2, jj;
	char frase[100], buscar, altera;

	printf("Digite uma frase: ");
	scanf("%s", frase);
   
	contador = 0;
	
	printf("\n\nA frase original eh: %s\n\n", frase);
	
	printf("Qual letra voce deseja buscar na frase :");
	
	scanf("%c", &buscar);
	buscar = getchar();
	
	for (j = 0; frase[j] != ''; j++) {
		if (frase[j] == buscar) {
		   contador = contador + 1;
		}
	}
	
	printf("\n\nNa frase original existe %d letras %c", contador, buscar);

	printf("\n\nPor qual letra voce deseja alterar a letra :");

	scanf("%c", &altera);
	altera = getchar();
	
	for(jj = 0; frase[jj] != ''; jj++) {
		   if (frase[jj] == buscar) {
			  frase[jj] = altera;
		   }
	}

	printf("\n\nVoce fez alteracao(oes) de %c para %c", buscar, altera);
	printf("\n\n\nO numero de letras modificados eh de %d ", contador);
	printf("\n\nA frase modificada ficou:\n%s\n\n", frase);
	
	system("pause");

	return 0;
}

Digite uma frase: foo


A frase original eh: foo

Qual letra voce deseja buscar na frase :f


Na frase original existe 1 letras f

Por qual letra voce deseja alterar a letra :x


Voce fez alteracao(oes) de f para x


O numero de letras modificados eh de 1

A frase modificada ficou:
xoo

Pressione qualquer tecla para continuar. . .


A explicação para o getchar() está neste link: http://www.vivaolinu....php?codigo=368
Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 Rômulo Costa

Rômulo Costa

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Não informado

Posted 14/04/2007, 13:41

Eclesiastes...

Valeu pela ajuda e pelo link da explicação...entendi direitinho, era só uma "sujeirinha no teclado" hehehe
Agora nao vou esquecer mais do getchar(); :rolleyes:
Valeu...




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq