我有這樣的功能:爲什麼替換某個角色的函數只能對角色的第一個實例執行此操作?
char *replace_str(char *str, char *orig, char *rep)
{
static char buffer[4096];
char *p;
if(!(p = strstr(str, orig)))
return str;
strncpy(buffer, str, p-str);
buffer[p-str] = '\0';
sprintf(buffer+(p-str), "%s%s", rep, p+strlen(orig));
return buffer;
}
當我使用它,它只是改變了角色的第一個實例進行更換。有什麼辦法可以讓它對所有說過的角色做到這一點?
是。重複替換,直到所有應該替換的內容都被替換。 – MikeCAT
大聲笑。只注意到我多麼多餘了。謝謝;) –
注意,如果'rep'不超過'orig'.'長這種方法只適用。 – FredK