[c] Inverser un integer

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,

2 réponses

  1. blurk Messages postés 493 Date d'inscription   Statut Membre 160
     
    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
    0
  2. Marc
     
    Merci pour cette réponse, et encore désolé pour le problème d'appellation :)
    0