Mit einem char* ist das schwer, denn dazu muss dir Speicher zur Verfügung stehen und außerdem strcat bzw. strncat benutzen, denn Ausdrücke wie "string1"+"strings2" führen nicht zu "string1string2" sondern zu der Addition der Adressen, wo "string1" und "string2" gespeichert werden (für C Anfänger können Zeichenketten so verwirrend sein).
Lies mal die FAQ: Mit C Strings richtig umgehen -- A! Elbereth Gilthoniel! silivren penna míriel o menel aglar elenath, Gilthoniel, A! Elbereth!Dieser Post wurde am 30.08.2005 um 17:32 Uhr von Pablo editiert.
Klar gibt es die. strcat und so machen das schon, man muss nur ziemlich aufpassen bei ihrer Benutzung. Und wie gesagt, std::string kann genau das was dein Beispiel zeigt. Wenn test ein std::string wäre, dann würde das so kompilieren und das tun, was du erwartest. -- Wer früher stirbt ist länger tot.
Hab ich es mir doch gedacht! Danke für den sachdienlichen Hinweiß :-) Ich glaub ich fang wirglich an mit std::sring zu arbeiten. Aber wie kann ich z.B. ein BSTR in ein std::String wandeln? Bei nem char ist das einfach! Zweite frage : Muß ich mich bei std:string überhaupt nicht um den Speicherkümmern?? Wen ja wieso arbeitet man überhaupt noch mit char?
das ist mir bewußt! Also gib es keine ordentliche Möglichkeit! Das wollte ich nur wissen!
Es gibt immer eine Möglichkeit. Die C-Funktionen sind ein bisschen ärmlich, aber ordentliche Ergebnisse sind damit genauso erzielbar wie mit leistungsfähigen Klassen, sie erfordern vom Programmierer nur mehr Verständnis für die Zusammenhänge und mehr Sorgfalt. Als es die Klassen noch nicht gab, haben wir nur so gearbeitet.
Lies zum Einstieg Pablos FAQ-Artikel (siehe oben) und danach in einem C-Buch deiner Wahl das Kapitel über Strings.