Inversion d'une chaîne de caractères
Bonjour tous,
Bien je voulais faire une fonction inversion de chaîne de caractères, de sorte que "direct" devienne "tcerid", je bloque.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
void permuter_ch(char * a, char * b) // à utiliser sous la forme permuter(&a,&b)
{
char k;
k=*a;
*a=*b;
*b=k;
}
char * inverser_ch(char ch[])
{
int i;
for(i=0;i<strlen(ch)/2;i++)//il suffit de s'arrêter sur strlen(ch)/2, que la chaîne soit de taille paire ou impaire.
{
permuter_ch(&ch[i],&ch[strlen(ch)-i-1]);
}
ch[strlen(ch)]='\0';//nécessaire ?
return ch;
}
int main()
{
char * ch="bonjour";
printf("%s\n",inverser_ch);
return 0;
} |
Le résultat est une chaîne absurde ! J'attends vos réponses, merci d'avance !