Hallo, mein Problem ist: ich will ausgewählte Zeichen in einen String speichern und ihn dann ausgeben.Aber wenn ich mehr als zwei Zeichen ausgegeben habe und die Anwendung schließen will kommt eine Fehlermeldung:„Ungültige Zeigeroperation“…
Ich wollte es so lösen:
if(i==2)
{
str2=‚B‘;
strcat(str.c_str(),str2.c_str());
EFenster->Text =str;
}
else
{
if(i==3)
{
str3=‚C‘;
strcat(str.c_str(),str3.c_str());
EFenster->Text =str;
}
usw…
dem c_str() nach zu Urteilen benutzt du std::string.
Damit kannst du natürlich die C-Funktion strcat nicht benutzten. Das ist auch nicht nötig, weil du deine Strings einfach mir + zusammenbasteln kannst.
#include
#include
int main()
{
std::string a, b, c;
a = "Hallo ";
b = "Welt";
c = a+b;
std::cout
deine Fehlermeldung kommt daher, weil string::c\_str() einen const char\* zurückgibt, auf den natürlich nicht geschrieben werden darf.
Das oben ist allerdings auch viel leichter.
Grüße,
mit dem Borland kenn ich mich leider gar nicht aus. Gibts da überhaupt noch ne aktuelle Version?
Egal, ein kurzes googlen hat ergeben, das AnsiString ebenfalls eine Stringklasse ist. Du kannst sie einfach statt std::string verwenden, dann klappt das auch mit der Zuweisung zu deinem Textfeld.