Partage
  • Partager sur Facebook
  • Partager sur Twitter

Chaine de caractère dynamique ??

Sujet résolu
    20 avril 2018 à 11:02:29

    Bonjour à tous, j'aurais voulu savoir si il était possible de générer des chaines de caractère dynamique en c++ ?

    le but étant à partir d'un schéma de départ d'obtenir des chaines de caractère type.

    un exemple de code qui ne marche absolument pas serait :

    string leopard = "j'ai" ;
    for(int i = 0 ; i < 10 ; i++)
    {
    string kangourou = leopard"_"i"eurosdansmapoche" ;
    }

    je précise que je ne souhaite pas utiliser de printf , le but final n'étant pas juste d'avoir une sortie en terminal mais d'avoir en mémoire ce type de chaine de caractère.

    ps : j'ai trouvé une alternative en faisant de l'écriture dans un fichier et en le relisant après, mais c'est pas très élégant...

    -
    Edité par valgwi 20 avril 2018 à 11:04:25

    • Partager sur Facebook
    • Partager sur Twitter
      20 avril 2018 à 11:21:45

      Yo !

      la classe string te permet de faire ce genre de choses : (par exemple, la fonction append, ou l'operator +=)

      STRING

      Par contre, je profites de ce message pour te dire que String Kangourou et String lépoard, c'est drôle (ça m'a fait rire), mais n'utilise jamais des noms de variable comme ça, c'est pas parlant, et ça indique rien du tout :)

      -
      Edité par KirbXCoucou 20 avril 2018 à 11:24:25

      • Partager sur Facebook
      • Partager sur Twitter

      « Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
      D. Mendeleïev

        20 avril 2018 à 11:29:35

        Il faut avouer que les string en C++ sont un peu lourd :

        std::string kangourou = leopard + "_" + std::to_string(i) + "eurosdansmapoche" ;

        Il existe maintenant pas mal de libs de formattage de string, elles sont quand meme plus propres. (Et je crois que c'est prevu dans les prochaines normes)

        • Partager sur Facebook
        • Partager sur Twitter
          20 avril 2018 à 11:34:26

          gbdivers a écrit:

          Il faut avouer que les string en C++ sont un peu lourd :

          std::string kangourou = leopard + "_" + std::to_string(i) + "eurosdansmapoche" ;

          Il existe maintenant pas mal de libs de formattage de string, elles sont quand meme plus propres. (Et je crois que c'est prevu dans les prochaines normes)


          Ducoup, tu déconseilles d'utiliser la classe String pour ce genre de choses?

          -
          Edité par KirbXCoucou 20 avril 2018 à 12:06:50

          • Partager sur Facebook
          • Partager sur Twitter

          « Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
          D. Mendeleïev

            20 avril 2018 à 11:51:31

            pour quelque chose d'aussi simple, ca pose pas de problème d'utiliser std::string.

            Par contre, si on veut faire de l'unicode, generer des chaines complexes, avoir des fonctionnalités un peu plus avancées, on se trop vite limité juste avec std::string.

            (Perso, j'utilise QString, qui gère beaucoup mieux l'unicode)

            • Partager sur Facebook
            • Partager sur Twitter
              20 avril 2018 à 12:06:26

              Oké
              • Partager sur Facebook
              • Partager sur Twitter

              « Je n’ai pas besoin de preuve. Les lois de la nature, contrairement aux lois de la grammaire, ne permettent aucune exception. »
              D. Mendeleïev

                21 avril 2018 à 6:25:18

                Pour "remplir" une chaine tu peux utiliser un std::ostringstream:

                #include<sstream>  // std::ostringstream
                
                std::ostringstream out;
                
                out << leopard_ << "_" << i << "eurodanssapoche";
                
                std::string kangourou = out.str();


                Après, lorsque j'ai Qt sous la main, j'apprécie assez les combos QStringList/QString pour faire des formatages improbables :p

                query.exec(QString{"INSERT INTO %1 (%2) VALUES(%3)"}
                .arg(tablename)
                .arg(fieldlist.join(','))
                .arg(fieldvalues.join(',')));



                -
                Edité par int21h 21 avril 2018 à 6:44:00

                • Partager sur Facebook
                • Partager sur Twitter
                Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug

                Chaine de caractère dynamique ??

                × 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