问题求解(c语言 || 字符串)

求解
代码作用是去除输入字符串中所有的'is'(不区分大小写)然后输出
代码如下

#include 
#include 
int main()
{
    char str[1000];
    int len,i=1;
    gets(str);
    len=strlen(str);
    while(iif(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++后无法满足题目要求

求解答


#include <stdio.h>
#include <string.h>
int main()
{
    char str[1000] = "isis";
    int len, i = 0; //
    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;
        else                 //
            putchar(str[i]); //
        i++;
    }
    return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
    char str[1000];
    int len,i=0;
    gets(str);
    len=strlen(str);
    while(i<len)
    {
        if((str[i] == 'i' || str[i] == 'I') && (str[i+1] == 's' || str[i+1] == 'S'))
            i+=2;
        else
        {
            printf("%c",str[i]);
            i+=1;
        }
    }
    return 0;
}