zeichen in String an beliebiger Stelle einfügen ohne andere Zeichen zu überschreiben

Burny66

Grünschnabel
Hallo,

bin relativ neu in C und möchte in einen String an eine beliebige Stelle ein zeichen einfügen. Zum Beispiel möchte ich in den String="6 9" folgende Zeichen einfügen ",3,3" hinter der 6 so das da am ende im String steht 6,3,3 9
Wie könnte ich dies am besten realisieren?

wäre euch dankbar
 
Hy,

dafür gibt es bei Strings die funktion Insert(int index, String inhalt)

also quasi:
C++:
String a = "6 9";
a.Insert(2,",3,3");

MfG
 
Hallo,
hier ein Beispiel in C. Das Ergebnis steht in pNew.
Prinzipiell musst du den Ausgangsstring an der Einfügeposition aufteilen und und die einzelnen Teilstücke (inklusive des Einfügestrings) in einem neuen Buffer mit ausreichender Größe zusammenbauen.
C++:
char str[] = "6 9";
char ins[] = ",3,3";

char *pNew = (char *)malloc(strlen(str) + strlen(ins) + 1);

strncpy(pNew, str, 1);
strcat(pNew, ins);
strcat(pNew, str+1);

// ...

free(pNew);
Gruß
MCoder
 
Zurück