Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Brown.

[Resolvido] | C |

Recommended Posts

Oi pessoal, alguém pode me ajudar aí?

Implemente uma função que receba como parâmetros uma string e dois caracteres (original e novo)

e substitua na string todas as ocorrências do caractere original pelo caractere novo. Por exmplo,

se receber parâmetro a string "Estruturas" e os caracteres 't' e'd', essa função deve alterar a

string para "Esdruduras".

 

Cheguei até aqui, mais não dar certo!

 

#include<stdio.h>
		#include<stdlib.h>
		void troca_letra(char *str, char original, char novo);
		main()
		{
				   char s[50], c;
				   printf("digite a sitring\n");
				   scanf("%[^\n]", s);
				   printf("digite um caracter);
				   scanf("%c", &c);
				   printf("digite o segundo caracter\n");
				   scanf("%c",&d);
				   troca_letra(str,c,d);
				   system("pause");
		  }
		   void troca_letra(char *str, char original, char novo)
		   {
						int i,j=0;
						for(i=0;s[i]!='\0';i++)
						{
								  if(str[i]==' ')
								  {
										 str[i]=original;
								   }
								   else if(str[i]==novo)
								   {
											j++;
								   }
						 }
			 }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nossa cara pra q fazer essa complicação td q esta seu programa faça simplesmente assim:

#include<stdio.h>
#include<stdlib.h>

void troca_letra(char str[], char original, char novo);

main()
{
	char s[50], c,d;
	printf("digite uma string:");
	gets(s);
	printf("digite o caracter da string:");
	scanf("%c", &c);
	fflush(stdin);
	printf("digite o caracter novo:");
	scanf("%c",&d);
	troca_letra(s,c,d);
	system("pause");
}

void troca_letra(char str[], char original, char novo)
{
	int i;

	for(i=0;i<=str[strlen(str)-1];i++)
	{
		if(str[i]==original) str[i]=novo;
	}
	printf("\n%s",str);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

scanf("%[^\n]", s);

 

Falta o operador de memória.

 

 

scanf("%c",&d);

 

Declare a variável.

 

 

troca_letra(str,c,d);

 

A variável str não existe

 

 

#include<stdio.h>
#include<stdlib.h>
void troca_letra(char *str, char original, char novo);
main()
{
char *s, c,d;
size_t tmp;
s=(char *)malloc(sizeof(char));

printf("digite a string:");
getline(&s,&tmp,stdin);
printf("digite um caractere:");
scanf("%c", &c);
printf("digite o segundo caractere: ");
scanf("%c", &d);
troca_letra(s,c,d);
printf("\n%s",s);
}

void troca_letra(char *str, char original, char novo)
{
int i;
for(i=0;str[i]!='\0';i++) {
	if(str[i]==original)
		str[i] = novo;
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Realmente não declarei a variavel d, e a na main é s.

Operador de memória? &? isso em string não precisa! (básico)

----------------------------------------------------------------

Não uso comandos prontos, mais obrigado, me ajudou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

quem disse q em string naum existe??

c você der um gets(str) ai sim naum precisa do '&'

agora a sintaxe do scanf é assim:

scanf("%<tipo>,&<variavel>);

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

A sintaxe é essa mesmo, mas quando se trata de string realmente não é necessário especificar "&".

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

quem disse q em string naum existe??

c você der um gets(str) ai sim naum precisa do '&'

agora a sintaxe do scanf é assim:

scanf("%<tipo>,&<variavel>);

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Verdade realmente naum precisa do '&', segue um link em q vi isso, e até msm testei jah!

 

http://www.java2s.com/Code/C/Console/Vario...gfloatscanf.htm

 

--Vivendo e aprendendo--- http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.