logo

Array von Strings in C++ – 5 verschiedene Möglichkeiten zum Erstellen

In C++ ist eine Zeichenfolge normalerweise nur ein Array von Zeichen (oder ein Verweis/ein Verweis auf) Zeichen, das mit dem NULL-Zeichen „ endet. ‘. Ein String ist ein eindimensionales Array von Zeichen und ein Array von Strings ist ein zweidimensionales Array von Zeichenwobei jede Zeile eine Zeichenfolge enthält.

Im Folgenden sind die 5 verschiedenen Möglichkeiten zum Erstellen eines String-Arrays in C++ aufgeführt:



  1. Benutzen Hinweise
  2. Benutzen 2-D-Array
  3. Verwendung der String-Klasse
  4. Verwendung der Vektorklasse
  5. Verwendung der Array-Klasse

1. Verwendung von Zeigern

Zeiger sind die symbolische Darstellung einer Adresse. Vereinfacht ausgedrückt ist ein Zeiger etwas, das die Adresse einer Variablen darin speichert. Bei dieser Methode wird ein Array von String-Literalen durch ein Array von Zeigern erstellt, in denenJeder Zeiger zeigt auf eine bestimmte Zeichenfolge.

Beispiel:

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;> }>

C#

>

>

Ausgabe

Blue Red Orange Yellow>

Erläuterung:

  • Die Anzahl der Strings ist festgelegt, muss aber nicht sein. Die 4 kann weggelassen werden und der Compiler berechnet die richtige Größe.
  • Diese Zeichenfolgen sind Konstanten und ihr Inhalt kann nicht geändert werden. Da String-Literale (im wahrsten Sinne des Wortes die in Anführungszeichen gesetzten Strings) in einem schreibgeschützten Speicherbereich vorhanden sind, müssen wir hier const angeben, um unerwünschte Zugriffe zu verhindern, die das Programm zum Absturz bringen könnten.

2. Verwendung eines 2D-Arrays

Ein 2D-Array ist die einfachste Form eines mehrdimensionalen Arrays, in dem die Daten in tabellarischer Form gespeichert werden. Diese Methode ist nützlich, wenn die Länge aller Zeichenfolgen bekannt ist und ein bestimmter Speicherbedarf gewünscht wird. Platz für Zeichenfolgen wird in einem einzigen Block zugewiesen

Beispiel:

C++




mvc für Java

// 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;> }>

>

>

Ausgabe

Blue Red Orange Yellow>

Erläuterung:

  • Sowohl die Anzahl der Strings als auch die Größe der Strings sind festgelegt. Die 4 kann wiederum weggelassen werden und die entsprechende Größe wird vom Compiler berechnet. Die zweite Dimension muss jedoch angegeben werden (in diesem Fall 10), damit der Compiler ein geeignetes Speicherlayout wählen kann.
  • Jede Zeichenfolge kann geändert werden, nimmt jedoch den gesamten durch die zweite Dimension bereitgestellten Platz ein. Alle werden im Speicher nebeneinander angeordnet und können ihre Größe nicht ändern.
  • Manchmal ist eine Kontrolle über den Speicherbedarf wünschenswert, und dadurch wird ein Speicherbereich mit einem festen, regelmäßigen Layout zugewiesen.

3. Verwendung der String-Klasse

Der STL-String bzw String-Klasse kann verwendet werden, um ein Array veränderlicher Zeichenfolgen zu erstellen. Bei dieser Methode ist die Größe der Zeichenfolge nicht festgelegt und die Zeichenfolgen können geändert werden, wodurch sie dennoch irgendwie dynamisch wird std::string kann verwendet werden, um mithilfe integrierter Funktionen ein String-Array zu erstellen.

Schakal gegen Wolf

Beispiel:

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] <<>' '>;> }>

>

>

Ausgabe

Blue Red Orange Yellow>

Erläuterung:

Das Array hat eine feste Größe, muss es aber nicht sein. Auch hier kann die 4 weggelassen werden und der Compiler bestimmt die geeignete Größe des Arrays. Die Zeichenfolgen sind außerdem veränderbar, sodass sie geändert werden können.

4. Verwendung der Vektorklasse

A Vektor ist ein dynamisches Array, das seine Größe verdoppelt, wenn ein neues Zeichen hinzugefügt wird, das seinen Grenzwert überschreitet. Der STL-Containervektor kann verwendet werden, um ein Array, dessen Größe variieren kann, dynamisch zuzuweisen.

Dies ist nur in C++ verwendbar, da C keine Klassen hat. Beachten Sie, dass die Syntax der Initialisierungsliste hier einen Compiler erfordert, der den C++-Standard von 2011 unterstützt. Auch wenn die Wahrscheinlichkeit groß ist, dass Ihr Compiler dies tut, sollten Sie sich dessen bewusst sein.

Beispiel:

C++




// 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] << ' '; }>

>

Konvertieren Sie einen String in eine Enumeration
>

Ausgabe

Blue Red Orange Yellow>

Erläuterung:

  • Vektoren sind dynamische Arrays und ermöglichen das jederzeitige Hinzufügen und Entfernen von Elementen.
  • Jeder Typ oder jede Klasse kann in Vektoren verwendet werden, aber ein bestimmter Vektor kann nur einen Typ enthalten.

5. Verwenden der Array-Klasse

Ein Array ist eine homogene Datenmischung, die kontinuierlich im Speicherbereich gespeichert wird. Das STL-Container-Array kann zum Zuweisen eines Arrays mit fester Größe verwendet werden. Es kann sehr ähnlich wie ein Vektor verwendet werden, die Größe ist jedoch immer festgelegt.

Beispiel:

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;> }>

>

zur String-Methode Java
>

Ausgabe

Blue Red Orange Yellow>

Dies sind keineswegs die einzigen Möglichkeiten, eine Sammlung von Zeichenfolgen zu erstellen. C++ bietet mehrere Containerklassen, von denen jede verschiedene Nachteile und Funktionen aufweist und alle dazu dienen, die Anforderungen zu erfüllen, die Sie in Ihren Projekten haben werden. Entdecken und Spaß haben!

Abschluss: Von allen Methoden scheint Vector die beste Möglichkeit zu sein, ein Array von Strings in C++ zu erstellen.

S.