Se connecter avec
S'enregistrer | Connectez-vous

[ C ] Inverser une chaine de caractere

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte
Expert Programmation

c'est facilement faisable en assembleur, alors en C, c'est du gateau :-D

tu prends une variable temporaire de type char qui te permet de faire les permutations, et tu fais les permutations.
Expert Programmation

C'est pas bien dur... Supposons que tu utilises un tableau non dynamique:

char string1[10];
char string2[10];
int cmp;
int cmp2=0;
/*reste du code*/
for(cmp=strlen(string1)-1;cmp>0;cmp--)
{
string2[cmp2]=string1[cmp];
cmp2++;
}

un truc dans le genre ca devrait marcher, ya peut être des ajustements a faire... Genre pour rajouter le '\0' terminal ou ce genre de trucs... Ou parce que j'aurais fait des erreurs dans le code...


Edit: prends la solution de Cricky, elle est surement mieux.
Expert Programmation

La technique de Rakipu est plus simple.

sinon, il faut inverse caractère par caractère:
fin = strlen(chaine) - 1;
char temp;

temp = chaine[0];
chaine[0] = chaine[fin];
chaine[fin] = temp;

temp = chaine[1];
chaine[1] = chaine[fin - 1];
chaine[fin - 1] = temp;

Voilà, tu transformes ça en un for qui va jusqu'à la moitié (sinon tu réinverse à nouveau) = strlen(chaine) / 2
Lassé par la pub ? Créez un compte
Tom's guide dans le monde