[c] Inverser un integer
Marc
-
Marc -
Marc -
Bonsoir,
Existe t-il une fonction en C, qui inverse un int ? Je m'explique, on a par exemple un int1 = 12345, et on aimerait obtenir int2 = 54321 ...
J'ai trouvé une fonction équivalente en C++, pour des chaînes de carcatères, mais en C que dalle.. donc si qqn pouvait m'éclairer !
Merci d'avance,
Existe t-il une fonction en C, qui inverse un int ? Je m'explique, on a par exemple un int1 = 12345, et on aimerait obtenir int2 = 54321 ...
J'ai trouvé une fonction équivalente en C++, pour des chaînes de carcatères, mais en C que dalle.. donc si qqn pouvait m'éclairer !
Merci d'avance,
2 réponses
-
Salut,
la seule inversion d'un entier qui soit digne de ce nom mathématiquement
c'est 1/x
la seule inversion qui soit recevable en logique booléenne
c'est " !" en C ou NOT en pascal
ce que tu demandes, c'est inverser les caractères d'une chaine
le genre d'exercices de base de la plupart des cours de langage C
1/ convertir ton integer en chaine :int mon_entier=54321; sprintf(chaine,"%d",mon_entier);
2/ inverser l'ordre des caractères de la chaineint longueur=strlen(chaine); for (int i=0; i<(longueur/2); i++) { char c=chaine[i]; chaine[i]=chaine[longueur-i-1]; chaine[longueur-i-1]=c; }
3/ on remet le résultat dans un integersscanf(chaine,"%d",&mon_entier);
attention aussi au 0 qui se comporte comme les autres chiffres,
où 5 sera différent de 05 ou encore de 005, comme quoi appeler ça une inversion est une hérésie
cordialement -