Zeichenketten addieren?

char 1 und char 2 sind keine Zeichenketten, sondern einzelne Zeichen. Zeichenketten sind char-Arrays char[].
Wenn du zwei Zeichenketten hast, geht es so (siehe auch deine andere Frage):
Code:
char kette1[]="Kette1";
char kette2[]="Kette2";

strcat(kette1,kette2);     //in kette1 steht jetzt der resultierende String

Mfg

langer
 
Vorsicht, dieser Code ist gefährlich! Es kommt dabei ziemlich sicher zu einem Buffer Overrun, da an der Speicherstelle, auf die kette1 zeigt, nicht genügend Speicher reserviert ist, um den Inhalt von kette2 anzuhängen. Aus diesem Grund sollte man auch strcat vergessen und stattdessen immer strncat verwenden, womit man Buffer Overruns besser verhindern kann.
 
moin


Ich würde einfach vorhandenes nehmen, z.B. "string" oder "CString".
Da kommt es (garantiert) zu keinem Bufferoverflow, und die String lassen sich noch etwas komfortabler zusammenfügen oder/und bearbeiten.


mfg
umbrasaxzn
 
Aber sicher ist das die bessere Lösung. Ich glaube aber nicht, daß strcat und strncat eine andere Speicherbehandlung verwenden. Denn ich habe beim Einsatz von strcat (zugegeben, in der C-Programmierung - seit ich in C++ und MFC programmiere, verwende ich nur noch CString) noch nie Speicherprobleme gehabt.

Mfg

langer
 
moin


@langer1801
Wenn man bei strncat nicht aufpasst, passiert genau so schnell ein Fehler wie bei strcat.
Dann kann man sich die Verwendung von strncat allerdings auch gleich sparen.


mfg
umbrasaxum
 
Das eben meinte ich. Der Unterschied besteht doch nur darin, daß strcat eine ganze Zeichenkette anhängt und strncat eine definierte Anzahl von Zeichen. Das Speicherproblem ist in beiden Fällen dasselbe.
 

Neue Beiträge

Zurück