string map (ersetzen eines teilstrings)
-
Ich suche eine string map function:
char *string = new char; strcpy(string, "This is a simple string"); char *what = new char; strcpy(what, "simple"); char *with = new char; strcpy(with, "new"); string_map (string, what, with); cout << string << endl;
rauskommen sollte: "This is a new string"
für die funktion habe ich folgenden Quelltext:
int string_first(char *string, char *what) { char *pch = strstr (string, what); int i = 0; while (string+i != pch && i < strlen(string)) { i++; } if (i == strlen(string) ) { return -1; } else { return i; } } int string_map (char *string ,char *what, char *with) { char *pch; pch = strstr (string,what); int first = string_first(string, pch); char *out = new char[first]; strncpy(out, string, first); out[first] = '\0'; strcat(out, with); int len = strlen(string)-first-strlen(what)+1; char *rest = new char[len]; rest = string+first+strlen(what); strcat(out, rest); string = out; return 0; }
wenn ich die function mit folgendem Aufruf starte funktioiniert es:
string_map ("This is a simple string", "simple", "new");
-
und wo ist nun dein problem?
du stellst nämlich gar keine frage....