string replace
-
hi,
ich lese eine Datei mit getline ein und möchte dort ein gefundenes Wort wie z.B: "hallo" mit einem anderen String replacen z.B "hi".
[cpp]
if(GetOperaCookie) {
char szOp[256];
sprintf(szOp, "%s\\Folder01", folder);
string zeile4;
ifstream datei4(szOp);
while(getline(datei4, zeile4)) {
zeile4.replace(.......)
wie replace ich nun Hallo zu Hi?}
}
[/cpp]msg,lo
-
Ich hab mal eine ANSI C Funktion geschrieben, die sogar nach Groß-/Kleinschreibung sucht und dynamisch Speicher reserviert, wenn der benötigt wird.
char* strreplace(char** str, char* sfind, char* sreplace, bool case_sensitivity) { char* retval = (char*)NULL; char* tmpval = (char*)NULL; char* find = (char*)NULL; char* replace = (char*)NULL; unsigned long int pos = 0; unsigned long int len = 0; find = (char*)malloc((strlen(sfind)+1) * sizeof(char)); strcpy(find, sfind); replace = (char*)malloc((strlen(sreplace)+1) * sizeof(char)); strcpy(replace, sreplace); if(case_sensitivity) { tmpval = (char*)malloc((strlen(*str)+1) * sizeof(char)); strcpy(tmpval, *str); strupr(tmpval); strupr(find); } retval = (char*)malloc(sizeof(char)); len = strlen(*str); for (unsigned int i = 0; i < len; i++) { if((!case_sensitivity && strncmp(((*str)+i), find, strlen(find)) == 0) || (case_sensitivity && strncmp((tmpval+i), find, strlen(find)) == 0)) { retval = (char*)realloc((char*)retval, (pos + strlen(replace) + 1) * sizeof(char)); memcpy((retval+pos), replace, strlen(replace) * sizeof(char)); pos = pos + strlen(replace); i += strlen(find)-1; } else { retval = (char*)realloc((char*)retval, (pos + 1 + 1) * sizeof(char)); retval[pos] = *((*str)+i); pos++; } } retval[pos] = '\0'; if(case_sensitivity) free(tmpval); free(find); free(replace); free(*str); *str = retval; return *str; }Gruß
~code_pilotPS: Gehört aber eigentlich nicht ins WinAPI-Forum!
-
Und wie replace ich damit jetzt genau nen string?
string gay;
strreplace(gay, "hallo", "hi", ..?);Danke.
-
zeile4.replace(zeile4.find("Hallo", 0), 5, "Hi");
-
str schrieb:
Und wie replace ich damit jetzt genau nen string?
string gay;
strreplace(gay, "hallo", "hi", ..?);Danke.
ja
strreplace(ein_string_der_nicht_schwul_ist, "hallo", "hi", false);