Brown. 1 Denunciar post Postado Maio 8, 2008 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
quitZAUMMM 18 Denunciar post Postado Maio 8, 2008 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
_Isis_ 202 Denunciar post Postado Maio 8, 2008 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
Brown. 1 Denunciar post Postado Maio 9, 2008 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
quitZAUMMM 18 Denunciar post Postado Maio 9, 2008 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
_Isis_ 202 Denunciar post Postado Maio 9, 2008 O Quit foi bem mais sutil do que eu seria. Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Maio 9, 2008 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
quitZAUMMM 18 Denunciar post Postado Maio 9, 2008 essa é nova pra mim! vow fazer o teste depois! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Maio 12, 2008 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