可能重复:
在 C 中替换字符串的函数是什么?
我正在尝试用多个字符替换字符串中的某个字符。这是我正在尝试做的一个例子。
假设我有字符串“aaabaa”
我想用 5 个“c”替换所有出现的字符“b”。
所以当我完成时,“aaabaa”变成了“aaacccccaa”
我写了以下代码:
#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);
}
我这个函数的输出是“aaaccccc”。它似乎只是用 c 覆盖了最后两个 a。有什么办法可以让最后几个 a 不会被覆盖?