int main()
{
char s[1000];
int i,j;
scanf("%s",s);//读入字符串(不需要&)
for(i = j = 0; s[i]; i ++)//条件时s[i],即会遍历完整个字符串s
{
//对if嵌套有时会比(&&逻辑与)更加灵活(特别是条件表达式太长时)
// if(s[i] == 'i' || s[i] == 'I')
// {
// if(s[i+1] == 's' || s[i+1] == 'S')
// i++;
// }这么写的话单个字符i将会进入if(而不会进入else,i就不会被写入s[j]当中)
if(s[i] == 'i' || s[i] == 'I')
{
if(s[i+1] == 's' || s[i+1] == 'S')
{
i++;
}
else
{
s[j++] = s[i];
//仍然要把单独地i存入s[j]数组(单独的s字母字符呢?放心,它再第一if的判断中就过不了,会写进s[j])
}
}
else s[j++] = s[i];//把需要保留地字符都装到s里面.
}
s[j] = 0;//本行是遍历完s且将最后一个需要保留地字符(我们成为合法字符)更新到s里头后,
//立刻屏蔽掉之后地内容(is),如果没有该行,结果:合法字符串之后原样输出旧字符地后部分
printf("%s\n",s);
return 0;
}
```本文参考了:
https://zhidao.baidu.com/question/1642307638236477660.html