Les chaînes C++ sont des séquences de caractères stockées dans un tableau de caractères. Les chaînes sont utilisées pour stocker des mots et du texte. Ils sont également utilisés pour stocker des données, telles que des chiffres et d'autres types d'informations. Les chaînes en C++ peuvent être définies soit en utilisant le std :: classe de chaînes ou la Tableaux de caractères de style C.

1. Cordes de style C
Ces chaînes sont stockées sous la forme d'un ancien tableau de caractères terminé par un caractère nul ' ' . Il s’agit du type de chaînes que C++ a hérité du langage C.
Syntaxe:
char str[] = 'techcodeview.com';>
Exemple:
C++
// C++ Program to demonstrate strings> #include> using> namespace> std;> int> main()> {> >char> s[] =>'techcodeview.com'>;> >cout << s << endl;> >return> 0;> }> |
>
>Sortir
techcodeview.com>
2. std::string Classe
Ce sont les nouveaux types de chaînes introduits en C++ en tant que classe std::string définie dans le fichier d'en-tête. Cela offre de nombreux avantages par rapport aux chaînes conventionnelles de style C, tels que la taille dynamique, les fonctions membres, etc.
Syntaxe:
std::string str('techcodeview.com');> Exemple:
C++
// C++ program to create std::string objects> #include> using> namespace> std;> int> main()> {> >string str(>'techcodeview.com'>);> >cout << str;> >return> 0;> }> |
>
>Sortir
techcodeview.com>
Une autre façon de créer des chaînes comportant le même caractère se répétant encore et encore.
Syntaxe:
std::string str(number,character);>
Exemple:
C++
#include> using> namespace> std;> int> main()> {> >string str(5,>'g'>);> >cout << str;> >return> 0;> }> |
>
>
Sortir:
ggggg>
Façons de définir une chaîne en C++
Les chaînes peuvent être définies de plusieurs manières en C++. Les chaînes sont accessibles depuis la bibliothèque standard en utilisant la classe string. Les tableaux de caractères peuvent également être utilisés pour définir des chaînes. String fournit un riche ensemble de fonctionnalités, telles que la recherche et la manipulation, qui sont des méthodes couramment utilisées. Bien qu’elle soit moins avancée que la classe string, cette méthode est encore largement utilisée, car elle est plus efficace et plus facile à utiliser. Les façons de définir une chaîne en C++ sont :
- Utilisation du mot-clé String
- Utiliser des chaînes de style C
1. Utilisation d'un mot-clé de chaîne
Il est plus pratique de définir une chaîne avec le mot-clé string au lieu d'utiliser le mot-clé array car il est facile à écrire et à comprendre.
Syntaxe:
string s = 'techcodeview.com'; string s('techcodeview.com');> Exemple:
C++
// C++ Program to demonstrate use of string keyword> #include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> >string str(>'techcodeview.com'>);> >cout <<>'s = '> << s << endl;> >cout <<>'str = '> << str << endl;> >return> 0;> }> |
>
>Sortir
s = techcodeview.com str = techcodeview.com>
2. Utilisation de chaînes de style C
Utilisation de fonctions de bibliothèques de chaînes de style C telles que strcpy(), strcmp() et strcat() pour définir des chaînes. Cette méthode est plus complexe et moins utilisée que les deux autres, mais elle peut être utile lorsque vous traitez du code existant ou lorsque vous avez besoin de performances.
char s[] = {'g', 'f', 'g', ' '}; char s[4] = {'g', 'f', 'g', ' '}; char s[4] = 'gfg'; char s[] = 'gfg';> Exemple:
C++
// C++ Program to demonstrate C-style string declaration> #include> using> namespace> std;> int> main()> {> >char> s1[] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s2[4] = {>'g'>,>'f'>,>'g'>,>' '> };> >char> s3[4] =>'gfg'>;> >char> s4[] =>'gfg'>;> >cout <<>'s1 = '> << s1 << endl;> >cout <<>'s2 = '> << s2 << endl;> >cout <<>'s3 = '> << s3 << endl;> >cout <<>'s4 = '> << s4 << endl;> >return> 0;> }> |
>
>Sortir
s1 = gfg s2 = gfg s3 = gfg s4 = gfg>
Un autre exemple de chaîne de style C :
C++
#include> using> namespace> std;> int> main()> {> >string S =>'Geeeks for Geeks'>;> >cout <<>'Your string is= '>;> >cout << S << endl;> >return> 0;> }> |
>
>Sortir
Your string is= Geeeks for Geeks>
Comment prendre une entrée de chaîne en C++
La saisie de chaîne signifie accepter une chaîne d’un utilisateur. En C++. Nous avons différents types de saisie des entrées de l'utilisateur qui dépendent de la chaîne. La manière la plus courante consiste à recueillir des commentaires avec manger mot-clé avec l’opérateur d’extraction (>>) en C++. Les méthodes pour prendre une chaîne en entrée sont :
- manger
- obtenir la ligne
- flux de chaînes
1. Utiliser Cin
La manière la plus simple de prendre une entrée de chaîne est d'utiliser le manger commande avec l’opérateur d’extraction de flux (>>).
Syntaxe:
cin>>s;>
Exemple:
C++
chaînes en c
// C++ Program to demonstrate string input using cin> #include> using> namespace> std;> int> main() {> >string s;> > >cout<<>'Enter String'>< cin>>s; cout<<'String is: '< return 0; }> |
>
>Sortir
Enter String String is:>
Sortir:
Enter String techcodeview.com String is: techcodeview.com>
2. Utiliser getline
Le Fonction getline() en C++ est utilisé pour lire une chaîne à partir d’un flux d’entrée. Il est déclaré dans le fichier d'en-tête.
Syntaxe:
getline(cin,s);>
Exemple:
C++
// C++ Program to demonstrate use of getline function> #include> using> namespace> std;> int> main()> {> >string s;> >cout <<>'Enter String'> << endl;> >getline(cin, s);> >cout <<>'String is: '> << s << endl;> >return> 0;> }> |
>
>
cartes JavaSortir
Enter String String is:>
Sortir:
Enter String techcodeview.com String is: techcodeview.com>
3. Utiliser StringStream
Le classe stringstream dans C++ est utilisé pour prendre plusieurs chaînes en entrée à la fois.
Syntaxe:
stringstream stringstream_object(string_name);>
Exemple:
C++
// C++ Program to demonstrate use of stringstream object> #include> #include> #include> using> namespace> std;> int> main()> {> >string s =>' techcodeview.com to the Moon '>;> >stringstream obj(s);> >// string to store words individually> >string temp;> >//>> L'opérateur lira à partir de l'objet stringstream> >while> (obj>> temp) {> >cout << temp << endl;> >}> >return> 0;> }> |
>
>Sortir
techcodeview.com to the Moon>
Comment passer des chaînes aux fonctions ?
De la même manière que nous transmettons un tableau à une fonction, les chaînes en C++ peuvent être transmises aux fonctions sous forme de tableaux de caractères. Voici un exemple de programme :
Exemple:
C++
// C++ Program to print string using function> #include> using> namespace> std;> void> print_string(string s)> {> >cout <<>'Passed String is: '> << s << endl;> >return>;> }> int> main()> {> >string s =>'techcodeview.com'>;> >print_string(s);> >return> 0;> }> |
>
>Sortir
Passed String is: techcodeview.com>
Pointeurs et chaînes
Les pointeurs en C++ sont des représentations symboliques d'adresses. Ils permettent aux programmes de simuler des appels par référence ainsi que de créer et de manipuler des structures de données dynamiques. En utilisant des pointeurs, nous pouvons obtenir le premier caractère de la chaîne, qui est l'adresse de début de la chaîne. Comme indiqué ci-dessous, la chaîne donnée est accessible et imprimée via les pointeurs.
Exemple:
C++
// C++ Program to print string using pointers> #include> using> namespace> std;> int> main()> {> >string s =>'Geeksforgeeks'>;> >// pointer variable declared to store the starting> >// address of the string> >char>* p = &s[0];> >// this loop will execute and print the character till> >// the character value is null this loop will execute and> >// print the characters> >while> (*p !=>' '>) {> >cout << *p;> >p++;> >}> >cout << endl;> >return> 0;> }> |
>
>Sortir
Geeksforgeeks>
Différence entre les tableaux de chaînes et de caractères en C++
La principale différence entre une chaîne et un tableau de caractères est que les chaînes sont immuables, contrairement aux tableaux de caractères.
| Chaîne | Tableau de caractères |
|---|---|
| Les chaînes définissent des objets qui peuvent être représentés sous forme de flux de chaînes. | Le caractère nul termine un tableau de caractères. |
| Aucune dégradation du tableau ne se produit dans les chaînes car les chaînes sont représentées comme des objets. | La menace de dégradation du tableau est présent dans le cas du tableau de caractères |
| Une classe de chaînes fournit de nombreuses fonctions pour manipuler les chaînes. | Les tableaux de caractères n'offrent pas de fonctions intégrées pour manipuler les chaînes. |
| La mémoire est allouée dynamiquement. | La taille du tableau de caractères doit être allouée de manière statique. |
En savoir plus sur le différence entre les chaînes et les tableaux de caractères en C++
Fonctions de chaîne C++
C++ fournit certaines fonctions intégrées utilisées pour la manipulation de chaînes, telles que les fonctions strcpy() et strcat() pour copier et concaténer des chaînes. Certains d'entre eux sont:
| Fonction | Description |
|---|---|
| longueur() | Cette fonction renvoie la longueur de la chaîne. |
| échanger() | Cette fonction est utilisée pour échanger les valeurs de 2 chaînes. |
| taille() | Utilisé pour trouver la taille de la chaîne |
| redimensionner() | Cette fonction est utilisée pour redimensionner la longueur de la chaîne jusqu'au nombre de caractères donné. |
| trouver() | Utilisé pour trouver la chaîne qui est passée en paramètres |
| repousser() | Cette fonction est utilisée pour pousser le caractère passé à la fin de la chaîne |
| pop_back() | Cette fonction est utilisée pour extraire le dernier caractère de la chaîne |
| clair() | Cette fonction permet de supprimer tous les éléments de la chaîne. |
| strncmp() | Cette fonction compare au plus les premiers nombres d'octets des deux chaînes transmises. |
| strncpy() | Cette fonction est similaire à la fonction strcpy(), sauf qu'au plus n octets de src sont copiés |
| strrchr() | Cette fonction localise la dernière occurrence d'un caractère dans la chaîne. |
| fissuré() | Cette fonction ajoute une copie de la chaîne source à la fin de la chaîne de destination |
| trouver() | Cette fonction est utilisée pour rechercher une certaine sous-chaîne dans une chaîne et renvoie la position du premier caractère de la sous-chaîne. |
| remplacer() | Cette fonction est utilisée pour remplacer chaque élément de la plage [premier, dernier) égal à l'ancienne valeur par une nouvelle valeur. |
| sousstr() | Cette fonction est utilisée pour créer une sous-chaîne à partir d'une chaîne donnée. |
| comparer() | Cette fonction permet de comparer deux chaînes et renvoie le résultat sous la forme d'un entier. |
| effacer() | Cette fonction est utilisée pour supprimer une certaine partie d'une chaîne. |
Fonctions de l'itérateur de chaînes C++
En C++, les fonctions d'itérateur de chaîne intégrées fournissent au programmeur un moyen simple de modifier et de parcourir les éléments de chaîne. Ces fonctions sont :
| Les fonctions | Description |
|---|---|
| commencer() | Cette fonction renvoie un itérateur pointant vers le début de la chaîne. |
| fin() | Cette fonction renvoie un itérateur qui pointe vers la fin de la chaîne. |
| trouver() | Cette fonction est utilisée pour trouver la dernière occurrence de la chaîne. |
| rcommencer() | Cette fonction renvoie un itérateur inverse pointant vers la fin de la chaîne. |
| rend() | Cette fonction renvoie un itérateur inverse pointant vers le début de la chaîne. |
| ccommencer() | Cette fonction renvoie un const_iterator pointant vers le début de la chaîne. |
| quelques() | Cette fonction renvoie un const_iterator pointant vers la fin de la chaîne. |
| crbegin() | Cette fonction renvoie un const_reverse_iterator pointant vers la fin de la chaîne. |
| credo() | Cette fonction renvoie un const_reverse_iterator pointant vers le début de la chaîne. |
Exemple:
C++
// C++ Program to demonstrate string iterator functions> #include> using> namespace> std;> int> main()> {> >// declaring an iterator> >string::iterator itr;> >// declaring a reverse iterator> >string::reverse_iterator rit;> >string s =>'techcodeview.com'>;> >itr = s.begin();> > >cout <<>'Pointing to the start of the string: '> << *itr<< endl;> >itr = s.end() - 1;> >cout <<>'Pointing to the end of the string: '> << *itr << endl;> >rit = s.rbegin();> >cout <<>'Pointing to the last character of the string: '> << *rit << endl;> >rit = s.rend() - 1;> >cout <<>'Pointing to the first character of the string: '> << *rit << endl;> >return> 0;> }> |
>
>Sortir
Pointing to the start of the string: G Pointing to the end of the string: s Pointing to the last character of the string: s Pointing to the first character of the string: G>
Fonctions de capacité de chaîne
En C++, les fonctions de capacité de chaîne sont utilisées pour gérer la taille et la capacité des chaînes. Les principales fonctions de la capacité comprennent :
| Fonction | Description |
|---|---|
| longueur() | Cette fonction est utilisée pour renvoyer la taille de la chaîne |
| capacité() | Cette fonction renvoie la capacité allouée à la chaîne par le compilateur |
| redimensionner() | Cette fonction nous permet d'augmenter ou de diminuer la taille de la chaîne |
| rétrécir_to_fit() | Cette fonction diminue la capacité et la rend égale au minimum. |
Exemple:
C++
#include> using> namespace> std;> int> main()> {> >string s =>'techcodeview.com'>;> > >// length function is used to print the length of the string> >cout <<>'The length of the string is '> << s.length() << endl;> > >// capacity function is used to print the capacity of the string> >cout <<>'The capacity of string is '> << s.capacity()<< endl;> > >// the string.resize() function is used to resize the string to 10 characters> >s.resize(10);> > >cout <<>'The string after using resize function is '> << s << endl;> > >s.resize(20);> > >cout <<>'The capacity of string before using shrink_to_fit function is '><< s.capacity() << endl;> > >// shrink to fit function is used to reduce the capacity of the container> >s.shrink_to_fit();> >cout <<>'The capacity of string after using shrink_to_fit function is '><< s.capacity() << endl;> >return> 0;> }> |
>
>Sortir
The length of the string is 13 The capacity of string is 15 The string after using resize function is GeeksforGe The capacity of string before using shrink_to_fit function is 30 The capacity of string...>
En conclusion, cet article explique comment les chaînes peuvent être défiées en C++ à l'aide de tableaux de caractères et de classes de chaînes. La classe string offre des fonctionnalités plus avancées, tandis que le tableau de caractères fournit des fonctionnalités de base mais est efficace et facile à utiliser. Dans cet article, nous avons également abordé les différentes méthodes permettant de recueillir les commentaires de l'utilisateur.
Pour en savoir plus sur la classe std::string, reportez-vous à l'article – std :: classe de chaînes en C++