Problème fonctions chaines de caractères.
Bonour voici l'exercice sur lequel je bloque :
Le sous-programme « miroir » permet de concaténer à la phrase saisie au travers de l’option de l’exercice 1 son équivalent inversé avec un ‘ : ’ en séparateur. Voici un exemple : si la phrase saisie en 1 est « il fait beau », le résultat de cette option sera « il fait beau : uaeb tiaf li ».
Ici, le sous-programme reçoit un pointeur sur une phrase et retourne le pointeur sur une nouvelle phrase allouée dynamiquement.
L’appelant affiche la phrase résultat.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| //ma fonction
#include "mabib.h"
char* inver(char* chaine)
{
int i;
char sais[1000];
char* tab2;
for (i=0;i<=strlen(chaine);i++)
{
sais[i]=chaine[strlen(chaine)-i];
}
tab2=(char*)malloc((strlen(chaine))*sizeof(char));
strcpy(tab2,sais);
return(tab2);
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| //mon main()
#include "mabib.h"
int main(int argc, char *argv[])
{
char* chaine1;
int toto=0;
printf("Affichez la phrase à mémoriser : ");
chaine1=saisie(chaine1);
puts(chaine1);
voyelle(chaine1,&toto);
printf("\n\n %d",toto);
puts("");
puts(inver(chaine1));
system("PAUSE");
return 0;
} |
Si quelqu'un pourrait m'expliquer mon erreure j'ai un peu de mal, je pense que ca vient surement de mon return(tab2) mais je vois pas comment faire autrement.
Merci d'avance.