18.8 C
New York

Chaînes en C++ – GeeksforGeeks


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 varieties d’informations. Les chaînes en C++ peuvent être définies soit en utilisant le std :: classe de chaîne ou la Tableaux de caractères de model C.

Chaînes en C++

1. Cordes de model 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 kind de chaînes que C++ a hérité du langage C.

Syntaxe:

char str() = "GeeksforGeeks";

Exemple:

C++

#embody <iostream>

utilizing namespace std;

 

int important()

{

 

    char s() = "GeeksforGeeks";

    cout << s << endl;

    return 0;

}

2. std :: classe de chaîne

Il s’agit du nouveau kind de chaînes introduit 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 de model C conventionnelles telles que la taille dynamique, les fonctions membres, and so forth.

Syntaxe:

std::string str("GeeksforGeeks");

Exemple:

C++

#embody <iostream>

utilizing namespace std;

 

int important()

{

 

    string str("GeeksforGeeks");

    cout << str;

    return 0;

}

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 à partir de la bibliothèque normal à l’aide de la classe de chaînes. 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, automotive 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
  • Utilisation de chaînes de model 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 automotive il est facile à écrire et à comprendre.

Syntaxe:

string s = "GeeksforGeeks";
string s("GeeksforGeeks");

Exemple:

C++

#embody <iostream>

utilizing namespace std;

 

int important()

{

 

    string s = "GeeksforGeeks";

    string str("GeeksforGeeks");

 

    cout << "s = " << s << endl;

    cout << "str = " << str << endl;

 

    return 0;

}

Sortir

s = GeeksforGeeks
str = GeeksforGeeks

2. Utiliser des chaînes de model C

Utilisation de fonctions de bibliothèques de chaînes de model 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 lorsqu’il s’agit de code hérité 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++

#embody <iostream>

utilizing namespace std;

 

int important()

{

 

    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

Remark prendre une entrée de chaîne en C++

L’entrée de chaîne signifie accepter une chaîne d’un utilisateur. En C++. Nous avons différents varieties de prise d’entrée de l’utilisateur qui dépendent de la chaîne. Le moyen le plus courant consiste à prendre des entrées avec cin mot-clé avec l’opérateur d’extraction (>>) en C++. Les méthodes pour prendre une chaîne en entrée sont :

1. Utiliser Cin

La façon la plus easy de prendre une entrée de chaîne est d’utiliser le cin commande avec l’opérateur d’extraction de flux (>>).

Syntaxe:

cin>>s;

Exemple:

C++

#embody <iostream>

utilizing namespace std;

 

int important() {

 

      string s;

       

    cout<<"Enter String"<<endl;

      cin>>s;

   

      cout<<"String is: "<<s<<endl;

    return 0;

}

Sortir:

Enter String
GeeksforGeeks
String is: GeeksforGeeks

2. Utilisation de 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++

#embody <iostream>

utilizing namespace std;

 

int important()

{

 

    string s;

    cout << "Enter String" << endl;

    getline(cin, s);

    cout << "String is: " << s << endl;

    return 0;

}

Sortir:

Enter String
GeeksforGeeks
String is: GeeksforGeeks

3. Utilisation de 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++

#embody <iostream>

#embody <sstream>

#embody<string>

 

utilizing namespace std;

 

int important()

{

 

    string s = " GeeksforGeeks to the Moon ";

    stringstream obj(s);

    

    string temp;

    

    whereas (obj >> temp) {

        cout << temp << endl;

    }

    return 0;

}

Sortir

GeeksforGeeks
to
the
Moon

Remark passer des chaînes aux fonctions ?

De la même manière que nous passons un tableau à une fonction, les chaînes en C++ peuvent être passées aux fonctions sous forme de tableaux de caractères. Voici un exemple de programme :

Exemple:

C++

#embody <iostream>

utilizing namespace std;

 

void print_string(string s)

{

    cout << "Handed String is: " << s << endl;

    return;

}

 

int important()

{

 

    string s = "GeeksforGeeks";

    print_string(s);

 

    return 0;

}

Sortir

Handed String is: GeeksforGeeks

Pointeurs et chaînes

Les pointeurs en C++ sont des représentations symboliques d’adresses. Ils permettent aux programmes de simuler l’appel par référence ainsi que de créer et de manipuler des constructions 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 peut être consultée et imprimée through les pointeurs.

Exemple:

C++

#embody <iostream>

utilizing namespace std;

 

int important()

{

 

    string s = "Geeksforgeeks";

 

    

    

    char* p = &s(0);

 

    

    

    

 

    whereas (*p != '') {

        cout << *p;

        p++;

    }

    cout << endl;

 

    return 0;

}

Différence entre chaîne et tableau 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 de caractères.
Aucune désintégration de tableau ne se produit dans les chaînes automotive les chaînes sont représentées comme des objets. La menace de désintégration 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 statiquement.

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 des fonctions intégrées qui sont 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 permet d’é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 faire apparaître 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 examine au most les num premiers 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 incidence d’un caractère dans la chaîne.
strcat() Cette fonction ajoute une copie de la chaîne supply à la fin de la chaîne de vacation spot
trouver() Cette fonction est utilisée pour rechercher une certaine sous-chaîne à l’intérieur d’une chaîne et renvoie la place du premier caractère de la sous-chaîne.
substr() 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 d’itérateur de chaînes C++

En C++, les fonctions d’itération de chaîne intégrées offrent au programmeur un moyen easy 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 incidence de la chaîne.
rcommence() Cette fonction renvoie un itérateur inverse pointant vers la fin de la chaîne.
déchirer() Cette fonction renvoie un itérateur inverse pointant vers le début de la chaîne.
cbegin() Cette fonction renvoie un const_iterator pointant vers le début de la chaîne.
cend() 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.
crend() Cette fonction renvoie un const_reverse_iterator pointant vers le début de la chaîne.

Exemple:

C++

#embody <iostream>

utilizing namespace std;

 

int important()

{

    

    string::iterator itr;

 

    

    string::reverse_iterator rit;

 

    string s = "GeeksforGeeks";

 

    itr = s.start();

   

    cout << "Pointing to the beginning of the string: " << *itr<< endl;

 

    itr = s.finish() - 1;

 

    cout << "Pointing to the top of the string: " << *itr << endl;

 

    rit = s.rbegin();

    cout << "Pointing to the final character of the string: " << *rit << endl;

 

    rit = s.rend() - 1;

    cout << "Pointing to the primary character of the string: " << *rit << endl;

 

    return 0;

}

Sortir

Pointing to the beginning of the string: G
Pointing to the top of the string: s
Pointing to the final character of the string: s
Pointing to the primary 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 retourner la taille de la chaîne
capacité() Cette fonction renvoie la capacité qui est 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_pour_adapter() Cette fonction diminue la capacité et la rend égale au minimal.

Exemple:

C++

#embody <iostream>

utilizing namespace std;

 

int important()

{

 

    string s = "GeeksforGeeks";

   

      

    cout << "The size of the string is " << s.size() << endl;

       

      

    cout << "The capability of string is " << s.capability()<< endl;

     

    

      s.resize(10);

   

    cout << "The string after utilizing resize funtion is " << s << endl;

       

      s.resize(20);

     

    cout << "The capability of string earlier than utilizing shrink_to_fit operate is "<< s.capability() << endl;

     

      

    s.shrink_to_fit();

 

    cout << "The capability of string after utilizing shrink_to_fit operate is "<< s.capability() << endl;

 

    return 0;

}

Sortir

The size of the string is 13
The capability of string is 13
The string after utilizing resize funtion is GeeksforGe
The capability of string earlier than utilizing shrink_to_fit operate is 26
The capability of string after utilizing shrink_to_fit operate is 20

En conclusion, cet article explique remark les chaînes peuvent être définies en C++ à l’aide de tableaux de caractères et de courses de chaînes. La classe de chaînes fournit 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 discuté des différentes méthodes pour recueillir les commentaires de l’utilisateur.

Pour en savoir plus sur la classe std::string, reportez-vous à l’article – std :: classe string en C++

Related Articles

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Latest Articles