jacquel 0 Denunciar post Postado Abril 12, 2009 Gostaria de saber porque o programa não tá imprimindo a nova palavra! <_< [php] #include <stdio.h> #include <stdlib.h> #include <string.h> char* troca_letra (char* str, char original, char novo) { char* novo_v; int i; //você não precisa fazer um loop para contar o tamanho, já existe a função strlen() para calcular isso (para isso, declare a biblioteca <string.h> no início do código) int tam=strlen(str); novo_v=(char*)malloc((char)sizeof(tam+1) ); //Erro aki, use (char) ao invés de (char *) dentro do malloc for(i=0;i<tam;i++) { if(str[i]==original) novo_v[i]=novo; else novo_v[i]=str[i]; } novo_v[i]='\0'; //Erro aki, ' ao invés de " e \ ao invés de / return novo_v; } main(){ char pal[30]; //Erro aki, tirar o * char orig,nova; printf("Digite a palavra:\n"); gets(pal); //Erro aki, use fgets ao invés de scanf para obter strings printf("DIGA A LETRA ORIGINAL:\n"); fflush(stdin);//Erro aki, fflhush não deve ser usado em stdin scanf("%c",&orig); //Erro aki, usar %*c printf(" E A NOVA PARA REALIZAR A TROCA:\n"); fflush(stdin); //Erro aki, fflhush não deve ser usado em stdin scanf("%c",&nova);//Erro aki, usar %*c troca_letra(pal,orig,nova); printf("NOVA PALAVRA:%s\n",troca_letra); //Erro aki, %s ao invés de %c } [/php] Compartilhar este post Link para o post Compartilhar em outros sites
rafael.t.a 0 Denunciar post Postado Abril 12, 2009 tenta fazer assim: pal = troca_lera(pal,orig,nova); printf("Nova palavra %s: ",pal); Compartilhar este post Link para o post Compartilhar em outros sites