Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C] convertir un int en char[]

ou comment mettre un nombre dans une chaine

Sujet résolu
    18 février 2006 à 19:09:59

    Bonjour à tous ! ^^
    Dans le but de faire un programme qui changerait le nom de tout les fichiers que l'on lui passe en argument, je me heurte à un problème. :(
    Tout d'abord, il faut savoir que le but de programme est de renommer mes fichiers truc.machin, bidule.fic et jolie_fille.jpg :p en fichier_001.cif, fichier_002.cif et fichier_003.cif :lol:
    Le problème, c'est que pour renommer un fichier, il faut bien lui passer son nouveau nom(et ça parait logique, vous allez dire). ;)
    Et donc, j'ai tenté une concaténation :magicien: toute bête et barbare :pirate: entre le prefixe que je demande (donc un char[]) avec un nombre qui s'incrémente tout seul (donc un zoli petit int). Mais je me heurte au fait que la concaténation ne se fait qu'entre char[]...

    Comment transfomer mon int en char ??


    Et aussi, (tant qu'on y est, autant poser toutes les questoins qui faut...), comment puis-je demander à mon ordinateur de me ressortir mon int, qui vaudrait par exemple 54, avec OBLIGATOIREMENT trois chiffres, donc 054 ?

    Voila, merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      18 février 2006 à 19:11:55

      Pour obligatoirement 3 chiffres tu peux faire

      printf("%.3d",var);
      • Partager sur Facebook
      • Partager sur Twitter
        18 février 2006 à 19:22:02

        Citation : Elentar

        itoa()


        ... n'est pas standard, la meilleure solution reste le classique sprintf :

        char buf[512];
        int n = 122545;
        sprintf(buf,"fich_%d.gif",n);
        // donnera fich_122545.gif
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          18 février 2006 à 19:26:25

          Citation : Elentar

          itoa()


          Pas bon :D itoa n'existe pas dans la librairie standard.
          sprintf c'est mieux et ça lui convient parfaitement :p

          char fichier[FILENAME_MAX];
          int i = 12;
          sprintf (fichier, fich_%03d.cif");

          Met dans fichier la valeur "fich_012" (dans le code de format, 3 pour que le int transformé occupe trois "cases" et 0 pour remplir avec des 0).
          • Partager sur Facebook
          • Partager sur Twitter
            18 février 2006 à 19:26:29

            Wow merci à tous les troisquatre, vous avez bien été rapide et tout... Ca me rends un fier service... Merci

            edit : finalement, un quatrième à poster en même temps que moi...
            • Partager sur Facebook
            • Partager sur Twitter

            [C] convertir un int en char[]

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown