string in char array überschreiben
-
Hallo,
kann man in einem char-Array einen String hinzufügen? Die Leerzeichen im Array sollten mit diesem String überschrieben werden.
char data[] = {"das ist mein Array: (meldung)"}; static char err_msg[] = {"mein text"}; char *ptr; ptr = &err_msg[0];
Welche Funktion bietet sich hier an?
Gruß
der kleine tim
-
der kleine tim schrieb:
...
char data[] = {"das ist mein Array: (meldung)"}; static char err_msg[] = {"mein text"}; char *ptr; ptr = &err_msg[0];
Welche Funktion bietet sich hier an?
...strncat Bitte Start- Pointer auf den Teil verbiegen, wo das Target überschrieben werden darf.
-
vielen Dank für deine Antwort.
strncat Bitte Start- Pointer auf den Teil verbiegen, wo das Target überschrieben werden darf.
den Startwert nach "Array:" zu bekommen hab ich schon herausgefunden;
Aber werden dann die Leerzeichen überschrieben durch diesen String (wenn ich strncat verwende)? Oder wird der zweite String einfach hintendrangehängt?
tim
-
der kleine tim schrieb:
den Startwert nach "Array:" zu bekommen hab ich schon herausgefunden;
Aber werden dann die Leerzeichen überschrieben durch diesen String (wenn ich strncat verwende)? Oder wird der zweite String einfach hintendrangehängt?Wenn Du Dir das genau anschaust, brauchst Du zwei char *.
Ich würde fast raten, den Ausgabestring mittels strncpy und strncat zusammenzubasteln, weil, wie Du vermutet hast, der src- String einfach hinten angehängt wird.Wenn Du als char *dest jedoch dahin ziehst, daß strncat erst ab Stelle 15 oder so loslegt, dann geht das natürlich auch.
Mit einem ohne fixer Länge definierten char- Array ist sowas aber immer risikobehaftet. Besser, 'nen eigenen Ausgabestring anzulegen.
-
pointercrash() schrieb:
der kleine tim schrieb:
den Startwert nach "Array:" zu bekommen hab ich schon herausgefunden;
Aber werden dann die Leerzeichen überschrieben durch diesen String (wenn ich strncat verwende)? Oder wird der zweite String einfach hintendrangehängt?Wenn Du Dir das genau anschaust, brauchst Du zwei char *.
Ich würde fast raten, den Ausgabestring mittels strncpy und strncat zusammenzubasteln, weil, wie Du vermutet hast, der src- String einfach hinten angehängt wird.Wenn Du als char *dest jedoch dahin ziehst, daß strncat erst ab Stelle 15 oder so loslegt, dann geht das natürlich auch.
Mit einem ohne fixer Länge definierten char- Array ist sowas aber immer risikobehaftet. Besser, 'nen eigenen Ausgabestring anzulegen.d.h. ich leg das char *dest auf die Stelle data[15] innerhalb des einen char Arrays und muss nur dafür sorgen, dass der String err_msg[] mit dem neuen Inhalt kürzer ist als das char Array data von der stelle data[15] bis zum Schluss.
gruß
tim