Ceci est une ancienne révision du document !
Chapitre précédent | Sommaire principal | Chapitre suivant |
---|
Il est possible d'initialiser une chaîne en la remplissant avec un caractère répété n fois. Dans ce cas, la syntaxe pour initialiser la chaîne est différente de la syntaxe que vous avez déjà utilisée. Lorsque l'on initialise une variable avec une littérale ou avec une expression, vous avez utilisé la syntaxe avec des crochets :
string s { "hello, world!" };
Dans le cas d'une initialisation avec des caractères, il faut initialiser la variable comme si c'était une fonction, en utilisant des parenthèses pour passer les arguments. Les arguments à passer sont :
Par exemple :
#include <iostream> #include <string> int main() { std::string const s1 (10, 'a'); std::cout << s1 << std::endl; std::string const s2 (5, 'b'); std::cout << s2 << std::endl; }
affiche :
aaaaaaaaaa bbbbb
Fondamentalement, cela revient à initialiser une chaîne en donnant une littérale contenant une suite identique de caractères :
string const s1 { "aaaaaaaaaa" }; string const s2 { "bbbbb" };
L'intérêt d'initialiser en donnant un nombre de caractères à générer est de permettre de créer une chaîne contenant un nombre très important de caractères (imaginez par exemple si vous devez initialiser une chaîne avec une centaine de caractères).
Pour faire la même chose avec une chaîne existante, il faut appeler la fonction membre assign
. Les arguments à utiliser sont les mêmes :
#include <iostream> #include <string> int main() { std::string s {}; s.assign(7, 'c'); std::cout << s << std::endl; }
affiche :
ccccccc
Chapitre précédent | Sommaire principal | Chapitre suivant |
---|