私はこの機能を持っている:私はそれを使用する場合特定の文字を置き換える関数が、文字の最初のインスタンスに対してのみこれを行うのはなぜですか?
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
Lol。ちょっと冗長になっていたことに気付きました。ありがとうございます; –
このアプローチは、 'rep'が' orig'よりも長くない場合にのみ機能します。 – FredK