Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C] substr existe-t-il ?

Anonyme
    6 février 2006 à 20:05:31

    Bonjour, j'ai un code php et j'aimerais le passer en C :


    function clee_cellulaire_f($clee_brute_f)
    {
            $valeur_dernier_chiffre = substr($clee_brute_f, -1, 1);
            $clee_brute_f_moins_1 = substr($clee_brute_f, 0, strlen($clee_brute_f)-1);
            $clee_cellulaire = substr($clee_brute_f_moins_1, 0, $valeur_dernier_chiffre);
             return $clee_cellulaire;
    }


    Sachant que toutes mes variables sont des nombres, comment faire pour mettre ce code en C ? (Existe-t-il la fonction substr en C ? et comment utiliser strlen pour compter combien il y a de chiffres dans un nombre ?

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      6 février 2006 à 20:47:02

      Salut. Je ne pense pas que cette fonction existe mais tu dois pouvoir te la coder en jouant sur les fonctions de string.h notament strchr et strcpy je pense. Si j'ai le temps j'essayerai de coder ça ;)
      • Partager sur Facebook
      • Partager sur Twitter
        7 février 2006 à 0:38:08

        Alors, en C++, cela donne :


        #include <string>
        #include <iostream>

        using namespace std;

        string clee_cellulaire_f(string clee_brute_f)
        {
           // on récupère le dernier caractère
           char cValeur_dernier_chiffre = clee_brute_f[clee_brute_f.length() - 1];

           // et on le transforme en entier
           int iValeur_dernier_chiffre = atoi(&cValeur_dernier_chiffre);

           string clee_brute_f_moins_1 = clee_brute_f.substr(0, clee_brute_f.length() - 2);
           string clee_cellulaire = clee_brute_f_moins_1.substr(0, iValeur_dernier_chiffre);
           return clee_cellulaire;
        }

        int main()
        {
           string test = "abcdefghijklm4";
           cout << clee_cellulaire_f(test) << endl;
           return 0;
        }


        Le résultat final, avec cet exemple donne : "abcd"
        J'espère que c'est ce que tu voulais.
        • Partager sur Facebook
        • Partager sur Twitter
          7 février 2006 à 7:15:31

          Merci de ne pas répondre en C++ aux questions explicitement marquées C...
          Pour substr, tout dépend de ce que tu veux mais en gros c'est un bête memcpy.

          char *
          substr(char *buf, const char *s, size_t beg, size_t len)
          {
                  memcpy(buf, s + beg, len);
                  buf[len] = '\0';
                  return (buf);
          }

          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            7 février 2006 à 18:30:34

            rz0 => Comment passer un int en char ?
            et pourrais-tu expliquer un peu ton code (surtout a quoi correspond chaque variable) car je débute en C donc je suis pas très au point !
            • Partager sur Facebook
            • Partager sur Twitter

            [C] substr existe-t-il ?

            × 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