C++ 当满足IF语句时,替换字符串数组中的字符

C++ 当满足IF语句时,替换字符串数组中的字符,c++,C++,我正在尝试创建一个方法,其中一个char“s”数组与另外两个charchar1和char2一起输入,这个名为substitute的方法将在数组中搜索,如果它发现char1的实例,后跟“!”,它将用char2替换char1 然而,当测试我的方法时,它似乎没有这样做,if语句永远不会得到满足 请帮忙 替代方法 void substitute(char* s, char c1, char c2) { int n = strlen(s); for (int i = 0; i <= n;

我正在尝试创建一个方法,其中一个
char
“s”数组与另外两个
char
char1和
char2
一起输入,这个名为
substitute
的方法将在数组中搜索,如果它发现
char1
的实例,后跟“!”,它将用
char2
替换
char1

然而,当测试我的方法时,它似乎没有这样做,
if
语句永远不会得到满足

请帮忙

替代方法

void substitute(char* s, char c1, char c2)
{
   int n = strlen(s);
   for (int i = 0; i <= n; i++)
   {
       if(s[i] == c1 && s[i+1] == '!')
       {
         s[i] = c2;
       }
       i++;
   }
}
void替换(字符*s、字符c1、字符c2)
{
int n=strlen(s);

for(int i=0;i您的代码两次递增
i
,一次作为
for
语句的一部分,另一次在循环体中。其效果是只检查偶数字符,跳过其他字符

char s[] = "la!bellabella!bel";
char c1  = 'a';
char c2  = 'x';

substitute(s,c1,c2);
cout << s << endl;