string aus einer struktur in stringarray schreiben
-
Ich möchte einen String in ein Arrray mit der Größe von x, wobei
jeweils 1 Platz z.b.: array[1] mit einem wort belegt werden soll.string array[x]=struktur.wort;Jedoch liefert der Compiler folgende Fehlermeldung zurrück:
error C2057: Konstanter Ausdruck erwartet
error C2466: Zuordnung eines Arrays der konstanten Größe 0 nicht möglich.(x wird als 0 definiert doch im späteren Verlauf des Programms per x=x++
auf 1 gesetzt)Wo könnte hier der Fehler liegen oder gibt es eine bessere Methode?
-
Vielleicht solltest du dich noch ein bisschen intensiver mit Arrays und Strings befassen.
Grundsätzlich musst du das Array vorher erstellen (mit compilezeit-konstanter Grösse) und anschliessend die Strings einlesen. Ich empfehle sowieso STL-Container.
Für die einzelnen Worte gibt es unterschiedliche Möglichkeiten mit der Standardbibliothek, vielleicht wäre auch das Schreiben einer eigenen Funktion keine schlechte Übung...
-
#include <iostream> #include <string> using namespace std; int main() { string array[2]={"Hallo","du!"}; cout <<array[0]<<"\n"; cout <<array[1]<<"\n"; cin.get(); }hast du das so gemeint oder hab ich das falsch verstanden?

-
Ich wollte eigentlich den Integer x anstatt der 2 verwenden.
Also wenn ich zum bsp.: x als "3" definiere, soll das Array aus 3 strings bestehen.
Außerdem habe ich jetzt das Problem, da ich dieses array abspeichere und dann wieder auslese. Gibt es eine Möglichkeit die strigs einzeln zuzuweisen?
ungefähr so:
string Text[60]; x=1; Text[x]="hallo" x=x++; Text[x]="du"Trotzdem danke.
-
manfredkaush schrieb:
Gibt es eine Möglichkeit die strigs einzeln zuzuweisen?
Ja, z. B. eine Initialisierungsliste:
#include <iostream> #include <string> int main() { const int arr_size = 3; // Elemente eines Arrays mit Initialisierungsliste initialisieren std::string str_arr[arr_size] = { "test1", "test2", "test3" }; // Ausgabe aller Elemente des Stringarrays for(int i = 0; i != arr_size; ++i) std::cout << str_arr[i] << std::endl; return 0; }manfredkaush schrieb:
Ich wollte eigentlich den Integer x anstatt der 2 verwenden.
Also wenn ich zum bsp.: x als "3" definiere, soll das Array aus 3 strings bestehen.
Dann sollte dein Integer
constsein (wie in meinem Codebeispiel) oder du weist die Arraygröße dynamisch mitnew[]zu.
-
Besser, du nimmst
std::vector:// Erstellt einen STL-Vector mit x Elementen vom Typ // std::string, die gerade mit "hallo" initialisiert werden. std::vector<std::string> Vec(x, "hallo");Wenn dir die STL nichts sagt, kannst du hier den Artikel lesen. Hier erhältst du ausserdem zusätzliche Informationen zur Funktionalität.
-