Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction

comment décortiquer un chiffre

    31 janvier 2006 à 19:13:00

    Bonjour,

    J'ai un problème : (non c'est pas vrai ? :euh: )
    J'aimerais pouvoir prendre un chaine de caractère et pouvoir prendre chaque caractère.
    ex : j'ai un nombre qui est de 246, et bah j'aimerais pouvoir obtenir les chiffre :
    2 / 4 / 6
    J'espère que vous aurez compris.
    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      31 janvier 2006 à 20:05:24

      T'es sur que c'est une chaine de caractère ? Parce que si oui tu peux facilement acceder aux chiffre par l'index.

      Sinon si c'est un nombre, tu pourrais faire quelque chose du genre :


      void decomp2(int nb)
      {
          int centaine, dizaine, unite;
         
          centaine = nb/100;
          dizaine = (nb - centaine * 100) / 10;
          unite = nb - (centaine * 100 + dizaine * 10);
          printf("%d/%d/%d\n", centaine, dizaine, unite);
      }

      Le problème c'est que ca décompose seulement les nombres inférieur à 1000, pour des nombres plus grand, faut procéder de la même maniere, rien de bien compliqué.

      ++


      • Partager sur Facebook
      • Partager sur Twitter
        31 janvier 2006 à 20:05:28

        Salut. Dans un autre langage, je connais la fonction mid mais je ne pense pas qu'elle existe en C. Avec des oppérations, ça peut être possible non ? :

        2 = (246 - 0) / 100
        4 = (246 - 200) / 10
        6 = (246 - 240) / 1

        C'est une suggestion maintenant je sais pas.

        PS : c'est une bonne idée de fonction à coder ça, je m'y essayerait

        • Partager sur Facebook
        • Partager sur Twitter
          31 janvier 2006 à 20:32:44

          Y'a deux choix, soit une méthode mathématique, soit itoa (convertit un nombre en chaîne de caractères).
          http://www.cplusplus.com/ref/cstdlib/itoa.html
          • Partager sur Facebook
          • Partager sur Twitter
            31 janvier 2006 à 20:36:26

            Enfaite pr moi par chaine de caractère une suite de caractère (pr moi un caractère c'est un 1 , un 5...)
            Je suis en faite de programmer un logiciel pr passé du binaire au décimal et du décimal au binaire.

            Donc si le mec il rentre le nombre 1011101,
            j'aimerais pouvoir prendre
            1
            0
            1
            1
            1
            0
            1
            pour ensuite, effectué mes opérations sur chaque nouveau chiffre.
            Enfaite je voudrais pouvoir séparé chaque chiffre du nombre ?

            EDIT : Ho non je me suis fait chier pour rien à faire mes calcules alors qu'il existaient un fonction pour ça. je sais pas comment elle marche leur fonction car moi j'ai pas reussi à le faire. C'ets juste une suiste de long calcule j'ai pas pu le réduire :

            if (chiffre >= 2 && chiffre < 4)

            {
            char chiffre1,chiffre2;
            char rest1,rest2;

            chiffre1= chiffre /2;
            rest1 = chiffre % 2;
            chiffre1 = ceil(chiffre1) ;
            printf("%ld \n",chiffre1);

            chiffre2= chiffre1 /2;
            rest2 = chiffre1 % 2;
            chiffre2 = ceil(chiffre2) ;
            printf("%ld \n",chiffre2);
            printf("(%ld)10=(%ld%ld)2\n",chiffre,rest2,rest1);


            }

            Si vous ave zune possibilité pour le racourcire.

            Et sinon Elentar : merci , mais moi je veux séparer chaque parti du chiffre
            • Partager sur Facebook
            • Partager sur Twitter
              31 janvier 2006 à 22:19:17

              Tu veux juste obtenir tous les chiffres d'un entier codé en binaire ?

              Si c'est ça je pense que tu peux utiliser les oppérateurs de traitement de bits (notament l'opérateur de décalage >> et l'opérateur ET bit à bit & qui sera utile pour appliquer un masque).
              • Partager sur Facebook
              • Partager sur Twitter
                1 février 2006 à 13:01:46

                Oui c'est ça, mais j'aimerais avoir une "formule"non spécifique au binaire, que je pourrais utiliser sous toutes les chaines de caractères ( si vous voulez, si vous connaissez après un moyent de les remmettre en chiffre)
                Car après si je veux l'utilisé pour de l'hexadécimal...
                Par exemple l'utilisateur rentre 1245, je lui dits que c'est juste des signe et non pas une suite de chiffre, et ensuite je retransforme chaque signe séparé en un chiffre. ( J'utilise l'algorithme que j'ai effectuer sur le abelru openoffice, je ne sais pas si c'ets possible en C mais des fonctions de ce type doivent bine existé :D)

                Sinon ton opérateur comment je l'obtient ?
                • Partager sur Facebook
                • Partager sur Twitter

                Fonction

                × 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