logo

Tableau de chaînes en C++ – 5 façons différentes de créer

En C++, une chaîne est généralement simplement un tableau de (ou une référence/pointe vers) des caractères qui se termine par le caractère NULL ' ‘. Une chaîne est un tableau de caractères à une dimension et un tableau de chaînes est un tableau de caractères à deux dimensions.où chaque ligne contient une chaîne.

Vous trouverez ci-dessous les 5 manières différentes de créer un tableau de chaînes en C++ :



  1. En utilisant Pointeurs
  2. En utilisant Tableau 2D
  3. En utilisant le Classe de chaîne
  4. En utilisant le Classe de vecteur
  5. En utilisant le Classe de tableau

1. Utiliser des pointeurs

Les pointeurs sont la représentation symbolique d'une adresse. En termes simples, un pointeur est quelque chose qui stocke l’adresse d’une variable. Dans cette méthode, un tableau de chaînes littérales est créé par un tableau de pointeurs dans lequelchaque pointeur pointe vers une chaîne particulière.

Exemple:

C++








// C++ program to demonstrate> // array of strings using> // pointers character array> #include> // Driver code> int> main()> {> >// Initialize array of pointer> >const> char>* colour[4]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Printing Strings stored in 2D array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>' '>;> >return> 0;> }>

numéro armstrong

>

>

Sortir

Blue Red Orange Yellow>

Explication:

  • Le nombre de chaînes est fixe, mais ce n’est pas obligatoire. Le 4 peut être omis et le compilateur calculera la taille correcte.
  • Ces chaînes sont des constantes et leur contenu ne peut pas être modifié. Étant donné que les chaînes littérales (littéralement les chaînes entre guillemets) existent dans une zone de mémoire en lecture seule, nous devons spécifier const ici pour empêcher les accès indésirables susceptibles de faire planter le programme.

2. Utiliser un tableau 2D

Un tableau 2D est la forme la plus simple d'un tableau multidimensionnel dans lequel il stocke les données sous forme de tableau. Cette méthode est utile lorsque la longueur de toutes les chaînes est connue et qu’une empreinte mémoire particulière est souhaitée. L'espace pour les chaînes sera alloué dans un seul bloc

Exemple:

types de tests

C++




// C++ program to demonstrate> // array of strings using> // 2D character array> #include> // Driver code> int> main()> {> >// Initialize 2D array> >char> colour[4][10]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Printing Strings stored in 2D array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>' '>;> >return> 0;> }>

>

>

Sortir

Blue Red Orange Yellow>

Explication:

  • Le nombre de chaînes et la taille des chaînes sont fixes. Le 4, encore une fois, peut être omis et la taille appropriée sera calculée par le compilateur. La deuxième dimension doit cependant être donnée (dans ce cas, 10), afin que le compilateur puisse choisir une disposition de mémoire appropriée.
  • Chaque chaîne peut être modifiée mais occupera tout l'espace donné par la deuxième dimension. Chacun sera disposé l’un à côté de l’autre en mémoire et ne pourra pas changer de taille.
  • Parfois, le contrôle de l'empreinte mémoire est souhaitable, ce qui allouera une région de mémoire avec une disposition fixe et régulière.

3. Utilisation de la classe String

La chaîne STL ou classe de chaîne peut être utilisé pour créer un tableau de chaînes mutables. Dans cette méthode, la taille de la chaîne n'est pas fixe et les chaînes peuvent être modifiées, ce qui la rend néanmoins dynamique par nature. std :: chaîne peut être utilisé pour créer un tableau de chaînes à l'aide de fonctions intégrées.

Exemple:

C++




// C++ program to demonstrate> // array of strings using> // string class> #include> #include> // Driver code> int> main()> {> >// Initialize String Array> >std::string colour[4]> >= {>'Blue'>,>'Red'>,>'Orange'>,>'Yellow'> };> >// Print Strings> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>' '>;> }>

>

>

structures utilisant des tableaux en c
Sortir

Blue Red Orange Yellow>

Explication:

Le tableau est de taille fixe, mais ce n’est pas obligatoire. Encore une fois, le 4 ici peut être omis et le compilateur déterminera la taille appropriée du tableau. Les chaînes sont également mutables, ce qui permet de les modifier.

4. Utilisation de la classe vectorielle

UN vecteur est un tableau dynamique qui double sa taille chaque fois qu'un nouveau caractère dépassant sa limite est ajouté. Le vecteur conteneur STL peut être utilisé pour allouer dynamiquement un tableau dont la taille peut varier.

Ceci n'est utilisable qu'en C++, car C n'a pas de classes. Notez que la syntaxe de la liste d'initialisation nécessite ici un compilateur prenant en charge la norme C++ 2011, et même s'il est fort probable que votre compilateur le fasse, il faut en être conscient.

Exemple:

C++


décompression sous Linux



// C++ program to demonstrate> // array of strings using> // vector class> #include> #include> #include> // Driver code> int> main()> {> >// Declaring Vector of String type> >// Values can be added here using> >// initializer-list> >// syntax> >std::vector colour{>'Blue'>,>'Red'>,> >'Orange'>};> >// Strings can be added at any time> >// with push_back> >colour.push_back(>'Yellow'>);> >// Print Strings stored in Vector> >for> (>int> i = 0; i std::cout << colour[i] << ' '; }>

>

>

Sortir

Blue Red Orange Yellow>

Explication:

  • Les vecteurs sont des tableaux dynamiques et vous permettent d'ajouter et de supprimer des éléments à tout moment.
  • N'importe quel type ou classe peut être utilisé dans les vecteurs, mais un vecteur donné ne peut contenir qu'un seul type.

5. Utilisation de la classe Array

Un tableau est un mélange homogène de données stockées en permanence dans l’espace mémoire. Le tableau de conteneurs STL peut être utilisé pour allouer un tableau de taille fixe. Il peut être utilisé de manière très similaire à un vecteur, mais la taille est toujours fixe.

Exemple:

C++




// C++ program to demonstrate> // array of string using STL array> #include> #include> #include> // Driver code> int> main()> {> >// Initialize array> >std::array colour{>'Blue'>,>'Red'>,> >'Orange'>,>'Yellow'>};> >// Printing Strings stored in array> >for> (>int> i = 0; i <4; i++)> >std::cout << colour[i] <<>' '>;> >return> 0;> }>

renommer dans le répertoire Linux
>

>

Sortir

Blue Red Orange Yellow>

Ce ne sont en aucun cas les seules façons de créer une collection de chaînes. C++ propose plusieurs classes de conteneurs, chacune présentant divers compromis et fonctionnalités, et toutes existent pour répondre aux exigences que vous aurez dans vos projets. Explorez et amusez-vous!

Conclusion: Parmi toutes les méthodes, Vector semble être le meilleur moyen de créer un tableau de chaînes en C++.

s.