Bonjour, j'ai un problème sur lequel je bûche depuis quelques jours :

Je dois écrire une fonction qui inverse une chaine de caractères (Bonjour => ruojnoB). J'ai une en-tête imposée que je ne peux pas modifier :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
void ReverseString ( char * str, char * res  );
Quand je fais mon code directement dans le main, je m'en sors, mais dès que je veux appeler la fonction, l'inversion fonctionne bien, mais je n'arrive pas à récupérer le bon pointeur dans res. Voici mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
main()
{
	char* string = "Bonjour";
	char* result = "Jourbon";
 
	ReverseString ( string, result );
	printf("Resultat : %s\n",result);
}
 
 
void ReverseString ( char * str, char * res  )
{
	char tmp[100];
	int I = 0;
	int J = strlen(str)-1;
 
	while ( (tmp[I]=str[J-I]) != '\0')
		I++;
 
        res=tmp;
	printf("Resultat temporaire : %s\n",res);
}
Ce qui m'écrit :

Resultat temporaire : ruojnoB
Resultat : Jourbon


Si vous pouviez m'aider ce serait sympa, d'avance merci !