Une chaîne est appelée un tableau de caractères. En C++, un flux/séquence de caractères est stocké dans un tableau de caractères. C++ inclut la classe std::string utilisée pour représenter les chaînes. Il s’agit de l’un des types de données les plus fondamentaux du C++ et il est livré avec un vaste ensemble de fonctions intégrées. Dans cet article, nous examinerons les fonctions des calculs de chaînes.
Qu'est-ce que std::string ?
Le std::string est une classe en C++ depuis C++98. Cette classe est la représentation standard d'une chaîne de texte. Il comprend certaines opérations de chaîne typiques telles que rechercher, remplacer, concaténer, comparer, etc. Il est présent dans En tête de fichier.
Déclaration et initialisation de chaîne
std::string company = 'techcodeview.com!';>
Fonctions de chaîne couramment utilisées en C++
La classe std::string contient des fonctions pour fournir certaines opérations de chaîne courantes. Le tableau ci-dessous contient certaines des fonctions les plus couramment utilisées en C++ :
| Oui Non. | Catégorie | Fonctions et opérateurs | Fonctionnalité |
|---|---|---|---|
| 1. comparaison du lion et du tigre | Longueur de chaine | longueur() ou taille() | Il renverra la longueur de la chaîne. |
| 2. | Accéder aux personnages | Indexation (à l'aide d'un tableau[index]) | Pour accéder à des caractères individuels à l’aide de l’indexation de tableau. |
| à() | Utilisé pour accéder à un caractère à un index spécifié. | ||
| 3. | Ajout et concaténation de chaînes | + Opérateur | L’opérateur + est utilisé pour concaténer deux chaînes. |
| La fonction append() ajoute une chaîne à la fin d'une autre. | |||
| 4. | Comparaison de chaînes | == Opérateur | Vous pouvez comparer des chaînes à l'aide de l'opérateur ==. |
| La fonction compare() renvoie une valeur entière indiquant le résultat de la comparaison. | |||
| 5. | Sous-chaînes | Utilisez la fonction substr() pour extraire une sous-chaîne d'une chaîne. | |
| 6. | Recherche | La fonction find() renvoie la position de la première occurrence d'une sous-chaîne. | |
| 7. | Modification de chaînes | remplacer() | Utilisez la fonction replace() pour modifier une partie de la chaîne. |
| insérer() | La fonction insert() ajoute une sous-chaîne à une position spécifiée. | ||
| effacer() | Utilisez la fonction effacer() pour supprimer une partie de la chaîne. | ||
| 8. | Conversion | c_str() | Pour obtenir une chaîne de style C à partir d'un std::string, vous pouvez utiliser la fonction c_str(). |
Note: Les fonctions ci-dessus ne fonctionnent que pour les chaînes de style C++ (objets std::string) et non pour les chaînes de style C (tableau de caractères).
1. Longueur de la chaîne – length() ou size()
Nous pouvons trouver la longueur de la chaîne (nombre de caractères) en utilisant soit longueur() ou taille() fonction de la classe std::string.
Syntaxe
string_object. size() or string_object. length()>
Paramètres
- Cette fonction ne prend aucun paramètre.
Valeur de retour
- Cette fonction renvoie le nombre de caractères dans l'objet chaîne.
Exemple
std::string text = 'geeksforGeeks'; int length = text.length(); //or int length = text.size();>
Il renverra la longueur de la chaîne texte qui est 13.
2. Accéder aux personnages – at()
Généralement, on peut accéder au caractère d'une chaîne en utilisant le Opérateur d'indice de tableau [] et l'indexation. Mais std::string a aussi une fonction nommée à() qui peut être utilisé pour accéder aux caractères de la chaîne.
Syntaxe
string_object. at( index );>
Paramètres
- index : Il représente la position du caractère dans la chaîne.
Valeur de retour
- Cette fonction renvoie le caractère présent au indice.
Exemple
std::string str = 'GEEKSFORGEEKS'; std::cout << str.at(3);>
Le std::cout imprimera K sur la console car c'est le caractère présent à l'index 3.
3. Concaténation de chaînes – append() ou + Opérateur
Nous pouvons concaténer une chaîne en C++ en utilisant deux méthodes :
1. + Opérateur
L'opérateur + est surchargé dans la classe std::string pour effectuer la concaténation de chaînes.
Syntaxe
string_object1 + string_object2>
Exemple
std::string firstName = 'Geeks'; std::string lastName = 'forGeeks'; std::string fullName = firstName + ' ' + lastName;>
L’opérateur + est utilisé pour concaténer deux chaînes. La chaîne fullName sera techcodeview.com.
2. ajouter()
La fonction append() est une autre fonction membre permettant de concaténer deux chaînes.
Syntaxe
string_object1. append ( string2 )>
Paramètres
- string2 : Cette fonction prend la chaîne à ajouter en tant que paramètre. Il peut s'agir d'une chaîne de style C ou C++.
Valeur de retour
- Référence à la chaîne finale.
std::string base = 'Hey! Geeks'; base.append(' Welcome to techcodeview.com!'); // Append a string> La fonction append() ajoute une chaîne à la fin d'une autre.
4. Comparaison de chaînes – opérateur compare() ou ==
Tout comme pour la concaténation, nous pouvons effectuer la comparaison de chaînes en utilisant deux méthodes :
1. == Opérateur
L'opérateur d'égalité peut être utilisé pour comparer les deux chaînes car il est surchargé pour cette opération dans la classe std::string.
Syntaxe
string_object1 == string_object2>
Cela reviendra vrai si les deux chaînes sont égales, sinon renvoie FAUX.
Exemple
std::string str1 = 'apple'; std::string str2 = 'banana'; if (str1 == str2) { std::cout << 'Strings are equal'; } else { std::cout << 'Strings are not equal'; }> Ici, les chaînes ne sont pas égales seront imprimées lorsque l'opérateur == reviendra FAUX.
2. comparer()
La fonction compare() est une fonction membre de la classe std::string qui peut être utilisée pour comparer deux chaînes.
Syntaxe
str1. compare( str2 );>
Paramètres
- str2 : C'est la chaîne à comparer. Il peut s'agir d'une chaîne de style C ou C++.
Valeur de retour
- Si les chaînes sont égales, retournez zéro.
- Si str1 est supérieur à str2, renvoie la valeur >0
- Si str2 est supérieur à str1, renvoie la valeur <0
Exemple
string str1 = 'Geeks'; string str2: = 'Geeksfor'; int result = str1. compare (str2);>
Le résultat contiendra une valeur inférieure à zéro car str2 est supérieur à str1.
Nous pouvons également comparer la sous-chaîne de str2 en utilisant la fonction compare() :
str1.compare(position, length, str2);>
où,
- position : position de la première sous-chaîne de caractères. length : longueur de la sous-chaîne. str2 : objet chaîne à comparer.
5. Recherche – trouver()
Nous pouvons utiliser le trouver() fonction de la classe std::string pour vérifier si un caractère donné ou une sous-chaîne est présent dans la chaîne ou une partie de chaîne.
Syntaxe de find()
str1.find(var);>
Paramètres
- var : Il peut s'agir d'une chaîne de style C, d'une chaîne de style C++ ou d'un caractère à rechercher dans la chaîne.
Valeur de retour
- Il renvoie le pointeur vers la première occurrence du caractère ou d'une sous-chaîne dans la chaîne.
Exemple
std::string text = 'C++ Programming'; int position = text.find('Programming'); // Find the position of a substring> La variable de position contiendra 4 qui est le début de la première occurrence de la chaîne Programmation dans la chaîne de texte.
6. Générer une sous-chaîne – substr()
Nous pouvons utiliser le fonction substr() pour générer une partie de la chaîne en tant que nouvel objet chaîne. C'est une fonction membre de la classe std::string.
Syntaxe de substr() en C
str1. substr ( start, end );>
Paramètres
- start : Position de départ de la sous-chaîne à générer. end : Fin de la sous-chaîne à générer.
Type de retour
- Il renvoie l'objet chaîne nouvellement créé.
Exemple
std::string text = 'Hello, World!'; std::string sub = text.substr(7, 5); // Extract 'World'>
Dans l'exemple ci-dessus. le sous la chaîne contiendra le monde.
Modification de chaînes
La fonction suivante nous permet de modifier la chaîne actuelle.
1. insérer()
La fonction insert() nous permet non seulement d'ajouter une chaîne mais nous permet également de l'ajouter à la position spécifiée. C'est également une fonction membre de la classe std::string.
Syntaxe
str1. insert (index, str2);>
Paramètres
- str2 : chaîne à insérer. index : position où insérer la nouvelle chaîne
Type de retour
algèbre des ensembles
- Référence au str1.
Exemple
std::string text = 'I have a cat.'; text.insert(9, ' black'); // Insert ' black' at position 9>
2. remplacer()
La fonction replace() remplace la partie de la chaîne par l’autre chaîne donnée. Contrairement à insert, les caractères de la partie où la nouvelle chaîne doit être insérée sont supprimés.
Syntaxe
str1. replace ( index, size, str2 );>
Paramètres
- index : index indiquant où commencer à remplacer la nouvelle chaîne. size : longueur de la partie de la chaîne à remplacer. str2 : nouvelle chaîne à insérer.
Type de retour
- Référence au str1.
Exemple
std::string text = 'I like dogs.'; text.replace(7, 4, 'cats'); // Replace 'dogs' with 'cats'>
3. effacer()
La fonction effacer() est une fonction membre de la classe std::string qui est utilisée pour supprimer un caractère ou une partie de la chaîne.
Syntaxe
str1 .erase( start, end);>
Paramètres
- départ : position de départ. end : position finale.
Type de retour
- Référence au str1.
Exemple
std::string text = 'This is an example.'; text.erase(5, 3); // Erase 'is '>
Convertir std :: string en chaîne C – c_str)_
La fonction c_str() est une fonction membre utilisée pour convertir la chaîne de style C++, c'est-à-dire les objets std::string en chaîne de style C, c'est-à-dire un tableau de caractères.
Syntaxe
str1.c_str()>
Paramètres
- Cette fonction ne prend aucun paramètre.
Valeur de retour
- Pointeur vers le tableau équivalent de caractères.
Exemple
std::string str = 'C++'; const char* cstr = str.c_str()>
Exemple de fonctions de chaîne en C++
Le code ci-dessous démontre l'utilisation des fonctions de chaîne spécifiées ci-dessus :
C++
// C++ Code to demostrate various functions available in> // String class> > #include> #include> > using> namespace> std;> > int> main()> {> >// Creating and initializing strings> >string greeting =>'Hello, World!'>;> >cout << greeting << endl;> >string name;> > >// Input from the user> >cout <<>'Enter your name: '>;> >cin>> nom ;> >cout << name << endl;> > >// String length> >int> length = greeting.length();> >cout << length << endl;> > >// Accessing characters> >char> firstChar = greeting[0];> >char> secondChar = greeting.at(1);> >cout << firstChar <<>' '> << secondChar << endl;> > >// Appending and concatenating strings> >string firstName =>'Geek'>;> >string lastName =>'Geeks'>;> >string fullName = firstName +>' '> + lastName;> >cout << fullName << endl;> >string base =>'Hello'>;> >cout << base << endl;> >base.append(>' World!'>);> >cout << base << endl;> > >// String comparison> >string str1 =>'apple'>;> >string str2 =>'banana'>;> >if> (str1 == str2) {> >cout <<>'Strings are equal'> << endl;> >}> >else> {> >cout <<>'Strings are not equal'> << endl;> >}> > >int> result = str1.compare(str2);> >if> (result == 0) {> >cout <<>'Strings are equal'> << endl;> >}> >else> if> (result <0) {> >cout <<>'str1 comes before str2'> << endl;> >}> >else> {> >cout <<>'str1 comes after str2'> << endl;> >}> > >// Substrings> >string text =>'Hello, World!'>;> >cout << text << endl;> >string sub = text.substr(7, 5);> >cout << sub << endl;> > >// Searching> >string searchIn =>'C++ Programming'>;> >size_t> position = searchIn.find(>'Programming'>);> >if> (position != string::npos) {> >cout <<>'Found at position '> << position << endl;> >}> >else> {> >cout <<>'Not found'> << endl;> >}> > >// Modifying strings> >string modify =>'I like dogs.'>;> >modify.replace(7, 4,>'cats'>);> >cout << modify << endl;> >modify.insert(6,>' black'>);> >cout << modify << endl;> >modify.erase(6, 6);> >cout << modify << endl;> > >// Conversion> >string str =>'C++'>;> >const> char>* cstr = str.c_str();> >cout << cstr << endl;> > >return> 0;> }> |
>
>
Sortir
Hello, World! Enter your name: Geeks Geeks 13 H e Geek Geeks Hello Hello World! Strings are not equal str1 comes before str2 Hello, World! World Found at position 4 I like cats. I like black cats. I like cats. C++>