Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ajout d'une seule lettre à un liste de caractère

ajout d'une seule lettre dans un string à l'aide d'un push_back

Sujet résolu
    2 juin 2023 à 9:46:15

    Bonjour 

    Je m'exerce au C++ en suivant le cours dédié d'open classrooms. il y ait dit qu'il est possible d'ajouter une seule lettre à une chaine de caractères string à l'aide d'un push_back. Le problème est que le cours ne montre pas comment on s'y prend pour ce faire, que les exemples sur internet qui combinent push_back et string sont difficilement trouvables et que j'ai essayé de plusieurs manières différentes de combiner push_back avec string, mais que l'IDE me signale toujours une erreur. Voici l'une des manière que j'ai expérimenté :

    #include <iostream>
    #include <vector>//nécessaire pour utiliser les tableaux dynamique
    
    using namespace std;
    int main()
    {
        string texte("Portez ce whisky au vieux juge blond qui fume.");  //46 caractères
        cout << texte << endl;
        //texte.push_back("k");  //cette instruction ne marche pas
        cout << texte << endl;
        cout << "Cette phrase contient " << texte.size() << " lettres." << endl;
    
        return 0;
    }

    Quelqu'un pourrait-il m'éclairer ?

    Cordialement

    -
    Edité par 1Stark 2 juin 2023 à 9:50:19

    • Partager sur Facebook
    • Partager sur Twitter
      2 juin 2023 à 11:06:06

      C'est tout simplement qu'un caractère se mets entre simple cote :

      texte.push_back('k'); 



      • Partager sur Facebook
      • Partager sur Twitter
      ...
        2 juin 2023 à 12:25:32

        On peut le faire autrement:
         
        #include <iostream>
        #include <string>
        int main(void) {
            std::string text { "Je n'aime pas les pommes mure" };
             std::cout << text << std::endl;
            text = text + 's';
            std::cout << text << std::endl;
        }
        • Partager sur Facebook
        • Partager sur Twitter

        Le Tout est souvent plus grand que la somme de ses parties.

          2 juin 2023 à 17:39:31

          On peut aussi utiliser std::string::append(), et là comme avec l'opérateur+ donné par Pierrot, les guillemets sont possibles (on peut ajouter un char ou une chaine contrairement à std::string::push_back() qui permet d'ajouter un élément à une collection donc un char pour une chaine.)

          text.append( "k" );    // OK
          text.append( 1, 'k' ); // OK, mais ici il FAUT indiquer combien de fois on a le caractère
          text += "k";           // OK
          test += 'k';           // OK
          text = text + "k";     // OK
          text = text + 'k';     // OK
          text.push_back( "k" ); // erreur, n'a aucun sens
          text.push_back( 'k' ); // OK

          et aussi:

          text.insert( end(text), 'k' );        // qu'avec char, un peu tordu!
          text.insert( end(text), 1, 'k' );     // ou en précisant la quantité de char
          text.insert( text.length(), "k" );    // ici chaîne possible
          text.insert( text.length(), 1, 'k' ); // et pour caractère il FAUT indiquer combien!
          text.resize( text.length()+1, 'k' );  // Encore plus tordu!

          Pour savoir, il faut penser à lire la documentation.

          • Partager sur Facebook
          • Partager sur Twitter

          En recherche d'emploi.

          Ajout d'une seule lettre à un liste de caractère

          × 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