[c] Inverser un integer

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,

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Merci pour cette réponse, et encore désolé pour le problème d'appellation :)
    1. 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 chaine
      int 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 integer
      sscanf(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