Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C] Transformer un nombre ( int )

en chaine de caractères

Sujet résolu
    28 avril 2006 à 11:12:14

    Bonjour,
    J'ai appris a me servir de SDL_TTF malheureusement il ne permet d'afficher que des chaines de caractères.

    Je souhaiterais afficher une variable Score a l'ecran mais c'est un int .
    Pour le faire passer dans la fonction il faudrait que je puisse transformer cette variable int en chaine de caractères ;) .

    Voila si quelqu'un peut m'éclairer je le remercie!
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      28 avril 2006 à 11:13:28

      sprintf(chaine, "%i", nombre);
      • Partager sur Facebook
      • Partager sur Twitter
        28 avril 2006 à 11:17:03

        Ah oui bien.

        J'aurais du relire le cours sur les chaine :)

        Merci beaucoup ;) !!
        • Partager sur Facebook
        • Partager sur Twitter
          28 avril 2006 à 12:15:53

          Ou s'il s'agit simplement d'un nombre à faire passer en caractère : x = x + '0';

          Puis si tu veux ensuite le reconvertir en nombre : x = x - '0';

          ++.
          • Partager sur Facebook
          • Partager sur Twitter
            28 avril 2006 à 12:19:41

            Où encore utilisez la fonction itoa() de la librairie ctype.h
            • Partager sur Facebook
            • Partager sur Twitter
              28 avril 2006 à 18:13:23

              Sauf qu'itoa n'est pas il me semble ANSI C, donc pas portable (forum "comment-ça-marche" je crois).
              • Partager sur Facebook
              • Partager sur Twitter
                28 avril 2006 à 21:48:32

                Excuse moi mleg, mais ton code ne marche que pour des nombres de 0 à 9, si tu essaye de faire 10 il va prendre la valeur ASCII de 0 et rajouter 10, tu seras donc plus dans la partie "chiffres" de la table, pour avoir 10 il faut {1+'0',0+'0'} ce qui equivaut à "10"... Donc la solution de sprintf me parrait la plus simple...
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  28 avril 2006 à 21:53:00

                  Sa solution marche très bien à condition que ce soit un seul chiffre et qu'il soit bien entre '0' et '9', sinon c'est souvent qu'il y a une erreur. Dans le cas d'une chaîne sprintf est plus simple puisqu'il permet de frabriquer la chaîne soi même comme avec printf puis d'utiliser la chaîne de la façon qu'on veut.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 avril 2006 à 22:33:01

                    Euh... C'est à peu près exactement ce que j'ai dis que tu répètes non? ^^
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Anonyme
                      28 avril 2006 à 22:38:18

                      Je disais juste qu'il fallait vérifier que le nombre était bien entre 0 et 9 et que cette solution est bien pratique si on a juste un chiffre (et pas envie de créer une chaîne tout ça), mais que sprintf est dans l'ensemble le plus pratique ^^
                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 avril 2006 à 22:52:28

                        Euh... Alors que moi je disais que sa méthode ne marchait que si son nombre est entre 0 et 9, mais qu'en général le nombre augmente beaucoup plus surtout si c'est pour une sorte de compteur mais que sprintf est dans l'ensemble bien plus pratique ^^
                        (Non non ça sent pas la répétition ;) )

                        Sinon en y repensant on peut aussi recoder une fonction perso en faisait x + '0' et en faisait des modulos 10 du nombre pour avoir chaque caractère un par un, et renvoyer le tableau de char (La chaine de caractères sous reserve que le char suivant soit un 0) mais bon c'est un peu lourd de recoder alors que c'est déjà tout pret avec sprintf...
                        • Partager sur Facebook
                        • Partager sur Twitter

                        [C] Transformer un nombre ( int )

                        × 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