logo

Fonctions de chaîne en C++

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.

ajouter()

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 ==.

comparer()

La fonction compare() renvoie une valeur entière indiquant le résultat de la comparaison.

5.

Sous-chaînes

sousstr()

Utilisez la fonction substr() pour extraire une sous-chaîne d'une chaîne.

6.

Recherche

trouver()

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++>