重複の可能性:
C で文字列を置換する関数は何ですか?
文字列内の特定の文字を複数の文字に置き換えようとしています。これが私がやろうとしていることの例です。
「aaabaa」という文字列があるとします
文字「b」の出現箇所をすべて 5 つの「c」に置き換えたいと考えています。
終わったら「あああああ」が「あぁっっっっっっっっっっっっっっっっ」」
私は次のコードを書きました:
#include <stdio.h>
#include <string.h>
int main(void)
{
char s[20] = "aaabaa";
int i, j;
for (i=0; s[i]!= '\0'; i++)
{
if (s[i] == 'b')
{
for (j=0; j<5; j++)
{
s[i+j] = 'c';
}
}
}
printf("%s\n", s);
}
この関数からの私の出力は「aacccccc」です。最後の 2 つの a を c で上書きしているように見えます。これらの最後のいくつかの a が上書きされないようにする方法はありますか?