String in string-array ?
-
Hiho,
ich will ein string in ein string-array kopieren, aber bekomm es einfach nicht hin.
zur veranschaulichung:
string daten0 = "test string"; char Datum[10][11]; strcpy(Datum[0], daten0);so funkionierts leider nicht, da gibt er mir als fehlermeldung:
error: cannot convert 'std::string' to 'const char*' for argument '2' to 'char* strcpy(char*, const char*)wobei wenn ich:
char Datum[10][11]; strcpy(Datum[0], "test string");gibt er mir ja die richtige lösung

Also ist "daten0='test string'" nicht gleich "test string" ?
Wo liegt da mein denkfehler oder kennt jemand eine andere lösung die "daten0" ins string-array "Datum[0]" zu bekommen ?
Mfg Analyse
-
Dein Problem ist, dass du kein string Array hast sondern ein Array von char Arrays. Das was du da machst ist C-Stil, der wird hier im C++ Unterforum nicht so gerne gesehen.
In C++ würde man es folgendermaßen machen:
#include <vector> using namespace std;[...]
string daten0 = "blabla"; vector<string> strings(10); strings[0] = daten0;Alternativ für fixed arrays gibt es auch noch std::array.
mfg, René~
-
Ahh, es funktioniert !!
Die c++ lösung gefällt mir zudem optisch besser.
Danke Rene.

-
Analyse schrieb:
Ahh, es funktioniert !!
Die c++ lösung gefällt mir zudem optisch besser.
Danke Rene.

Das ist nicht nur eine Frage der Optik, denn dein "test string" wäre auch zu lang gewesen.
-
manni66 schrieb:
Das ist nicht nur eine Frage der Optik, denn dein "test string" wäre auch zu lang gewesen.
Stimmt natürlich 11 Zeichen + Nullzeichen. Ergo hättest du hier schon nen Buffer Overflow in deinen Code eingebaut.
mfg, René~
-
Und jetzt nochmal der Grund wieso es nicht funktioniert hat:
Du hast in strcpy nur daten0 geschrieben, aber es hätte daten0.c_str() heißen müssen...
-
Das ist nicht nur eine Frage der Optik, denn dein "test string" wäre auch zu lang gewesen.
Ja, hatte ich mich verzählt für das bsp.

Bei der vector<string> methode wird ein kompletter string für die Endsequenz verbraucht oder ?
Du hast in strcpy nur daten0 geschrieben, aber es hätte daten0.c_str() heißen müssen...gut zu wissen, danke.
-
Bei der vector<string> methode wird ein kompletter string für die Endsequenz verbraucht oder ?
Tönt wirr... was meinst Du mit Endsequenz?
Im Zweifelsfall ist die Antwort Nein.