logo

std :: classe de chaînes en C++

C++ a dans sa définition une manière de représenter un séquence de caractères en tant qu'objet de la classe . Cette classe s'appelle std :: string. La classe string stocke les caractères sous forme de séquence d'octets avec la fonctionnalité de permettre accès au caractère codé sur un octet .

Tableau de chaînes ou de caractères

Chaîne

Tableau de caractères



 Une chaîne est un classe qui définit les objets qui être représenté comme un flux de caractères.Un tableau de caractères est simplement un tableau de caractères qui peut se terminer par un caractère nul.
Dans le cas de chaînes, la mémoire est alloué dynamiquement . Plus de mémoire peut être allouée au moment de l'exécution sur demande. Comme aucune mémoire n'est pré-allouée aucune mémoire n'est gaspillée .La taille du tableau de caractères doit être alloué statiquement plus de mémoire ne peut pas être allouée au moment de l'exécution si nécessaire. Inutilisé alloué la mémoire est également gaspillée
Comme les chaînes sont représentées comme des objets pas de dégradation du tableau se produit.Il y a un menace de dégradation du tableau dans le cas du tableau de caractères. 
Les cordes sont plus lentes par rapport à l'implémentation qu'au tableau de caractères.Mise en œuvre de le tableau de caractères est plus rapide que std :: string. 
La classe de chaîne définit un certain nombre de fonctionnalités qui permettent de multiples opérations sur les chaînes.Tableaux de caractères n'offre pas beaucoup fonctions intégrées pour manipuler les chaînes.

Opérations sur les chaînes

1) Fonctions d'entrée

FonctionDéfinition
obtenir la ligne() Cette fonction permet de stocker un flux de caractères saisis par l'utilisateur dans la mémoire objet.
push_back() Cette fonction permet de saisir un caractère à la fin de la chaîne.
pop_back()Introduite à partir de C++11 (pour les chaînes), cette fonction est utilisée pour supprimer le dernier caractère de la chaîne. 

Exemple:

comparaison java
CPP
// C++ Program to demonstrate the working of // getline() push_back() and pop_back() #include    #include  // for string class using namespace std; // Driver Code int main() {  // Declaring string  string str;  // Taking string input using getline()  getline(cin str);  // Displaying string  cout << 'The initial string is : ';  cout << str << endl;  // Inserting a character  str.push_back('s');  // Displaying string  cout << 'The string after push_back operation is : ';  cout << str << endl;  // Deleting a character  str.pop_back();  // Displaying string  cout << 'The string after pop_back operation is : ';  cout << str << endl;  return 0; } 

Sortir
The initial string is : The string after push_back operation is : s The string after pop_back operation is : 

Complexité temporelle : O(1)

string.comparer c#

Complexité spatiale : O(n) où n est la taille de la chaîne

2) Fonctions de capacité

FonctionDéfinition
capacité()Cette fonction renvoie la capacité allouée à la chaîne qui peut être égale ou supérieure à la taille de la chaîne. Un espace supplémentaire est alloué afin que lorsque les nouveaux caractères sont ajoutés à la chaîne, les opérations puissent être effectuées efficacement.
redimensionner() Cette fonction modifie la taille de la chaîne, la taille peut être augmentée ou diminuée.
longueur()Cette fonction trouve la longueur de la chaîne.
rétrécir_to_fit()Cette fonction diminue la capacité de la chaîne et la rend égale à la capacité minimale de la chaîne. Cette opération est utile pour économiser de la mémoire supplémentaire si l'on est sûr qu'aucun autre ajout de caractères ne doit être effectué.

Exemple:

CPP
// C++ Program to demonstrate the working of // capacity() resize() and shrink_to_fit() #include    #include  // for string class using namespace std; // Driver Code int main() {  // Initializing string  string str = 'geeksforgeeks is for geeks';  // Displaying string  cout << 'The initial string is : ';  cout << str << endl;  // Resizing string using resize()  str.resize(13);  // Displaying string  cout << 'The string after resize operation is : ';  cout << str << endl;  // Displaying capacity of string  cout << 'The capacity of string is : ';  cout << str.capacity() << endl;  // Displaying length of the string  cout << 'The length of the string is :' << str.length()  << endl;  // Decreasing the capacity of string  // using shrink_to_fit()  str.shrink_to_fit();  // Displaying string  cout << 'The new capacity after shrinking is : ';  cout << str.capacity() << endl;  return 0; } 

Sortir
The initial string is : geeksforgeeks is for geeks The string after resize operation is : geeksforgeeks The capacity of string is : 26 The length of the string is :13 The new capacity after shrinking is : 13

Complexité temporelle : O(1)

Complexité spatiale : O(n) où n est la taille de la chaîne

3) Fonctions de l'itérateur

FonctionDéfinition
commencer()Cette fonction renvoie un itérateur au début de la chaîne.
fin()Cette fonction renvoie un itérateur à la fin 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 précédent de la chaîne.
ccommencer()Cette fonction renvoie un itérateur constant pointant vers le début de la chaîne sur laquelle il ne peut pas être utilisé pour modifier le contenu vers lequel il pointe.
quelques()Cette fonction renvoie un itérateur constant pointant vers la fin suivante de la chaîne, il ne peut pas être utilisé pour modifier le contenu vers lequel il pointe.
crbegin()Cette fonction renvoie un itérateur inverse constant pointant vers la fin de la chaîne sur laquelle il ne peut pas être utilisé pour modifier le contenu vers lequel il pointe.
crend()Cette fonction renvoie un itérateur inverse constant pointant vers le début précédent de la chaîne, il ne peut pas être utilisé pour modifier le contenu vers lequel il pointe.

Algorithme:

  1. Déclarer une chaîne
  2. Essayez de parcourir la chaîne en utilisant tous les types d'itérateurs
  3. Essayez de modifier l'élément de la chaîne.
  4. Afficher toutes les itérations.

Exemple:

CPP
// C++ Program to demonstrate the working of // begin() end() rbegin() rend() cbegin() cend() crbegin() crend() #include    #include  // for string class using namespace std; // Driver Code int main() {  // Initializing string`  string str = 'geeksforgeeks';  // Declaring iterator  std::string::iterator it;  // Declaring reverse iterator  std::string::reverse_iterator it1;  cout<<'Str:'<<str<<'n';  // Displaying string  cout << 'The string using forward iterators is : ';  for (it = str.begin(); it != str.end(); it++){  if(it == str.begin()) *it='G';  cout << *it;  }  cout << endl;  str = 'geeksforgeeks';  // Displaying reverse string  cout << 'The reverse string using reverse iterators is '  ': ';  for (it1 = str.rbegin(); it1 != str.rend(); it1++){  if(it1 == str.rbegin()) *it1='S';  cout << *it1;  }  cout << endl;    str = 'geeksforgeeks';  //Displaying String  cout<<'The string using constant forward iterator is :';  for(auto it2 = str.cbegin(); it2!=str.cend(); it2++){  //if(it2 == str.cbegin()) *it2='G';  //here modification is NOT Possible  //error: assignment of read-only location   //As it is a pointer to the const content but we can inc/dec-rement the iterator  cout<<*it2;  }  cout<<'n';    str = 'geeksforgeeks';  //Displaying String in reverse  cout<<'The reverse string using constant reverse iterator is :';  for(auto it3 = str.crbegin(); it3!=str.crend(); it3++){  //if(it2 == str.cbegin()) *it2='S';  //here modification is NOT Possible  //error: assignment of read-only location   //As it is a pointer to the const content but we can inc/dec-rement the iterator  cout<<*it3;  }  cout<<'n';  return 0; } //Code modified by Balakrishnan R (rbkraj000) 

Sortir
Str:geeksforgeeks The string using forward iterators is : Geeksforgeeks The reverse string using reverse iterators is : Skeegrofskeeg The string using constant forward iterator is :geeksforgeeks The reverse string using constant reverse iterator is :skeegrofskeeg

Complexité temporelle : O(1)

np.random.rand

Complexité spatiale : O(n) où n est la taille de la chaîne

4) Fonctions de manipulation :

fonction prototype c++
FonctionDéfinition
copier('tableau de caractères' len pos) Cette fonction copie la sous-chaîne dans le tableau de caractères cible mentionné dans ses arguments. Il faut 3 arguments, longueur du tableau de caractères cible, pour être copié et position de départ dans la chaîne pour commencer la copie.
échanger()Cette fonction échange une chaîne avec une autre

Exemple:

CPP
// C++ Program to demonstrate the working of // copy() and swap() #include    #include  // for string class using namespace std; // Driver Code int main() {  // Initializing 1st string  string str1 = 'geeksforgeeks is for geeks';  // Declaring 2nd string  string str2 = 'geeksforgeeks rocks';  // Declaring character array  char ch[80];  // using copy() to copy elements into char array  // copies 'geeksforgeeks'  str1.copy(ch 13 0);  // Displaying char array  cout << 'The new copied character array is : ';  cout << ch << endl;  // Displaying strings before swapping  cout << 'The 1st string before swapping is : ';  cout << str1 << endl;  cout << 'The 2nd string before swapping is : ';  cout << str2 << endl;  // using swap() to swap string content  str1.swap(str2);  // Displaying strings after swapping  cout << 'The 1st string after swapping is : ';  cout << str1 << endl;  cout << 'The 2nd string after swapping is : ';  cout << str2 << endl;  return 0; } 

Sortir
The new copied character array is : geeksforgeeks The 1st string before swapping is : geeksforgeeks is for geeks The 2nd string before swapping is : geeksforgeeks rocks The 1st string after swapping is : geeksforgeeks rocks The 2nd string after swapping is : geeksforgeeks is for geeks


Doit lire : Classe de chaînes C++ et ses applications