求解
代码作用是去除输入字符串中所有的'is'(不区分大小写)然后输出
代码如下
#include <stdio.h>
#include <string.h>
int main()
{
char str[1000];
int len,i=1;
gets(str);
len=strlen(str);
while(i<len)
{
if(str[i]!='i'&&str[i]!='I')
printf("%c",str[i]);
else if(str[i+1]=='s'||str[i+1]=='S')
i=i+1;
i++;
}
return 0;
}
运行时出现了两个问题
一:
当输入字符串出现's'时,会连同这个's'和在其之前所有连续的'i'全部删除
e.g. 输入:"iiss"
输出:"s"
(或者更夸张一点)
e.g. 输入:"ii……iiss"(中间省略n个'i')
输出:"s"
二:
将代码中的 i=i+1; 换成 i++ 后运行结果是不同的
也就是说改成了i++后无法满足题目要求
求解答