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;
}
#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; }
Le Tout est souvent plus grand que la somme de ses parties.
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!
× 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.
Le Tout est souvent plus grand que la somme de ses parties.
En recherche d'emploi.