字符串删除前导的*,为什么没有输出??

#include
int main()
{
    int flag=0;
    char str[100]={'\0'};
    gets(str);
    char str1[100]={'\0'};
    char*s=str;
    int count=0;
    int len=strlen(str);
    for(int i=0;iif(str[i]=='*')
      {
        s++;
      }
      else
      {
        s++;
        break;
      }
    }
    while(*s!='\0')
    {
      if (*s!='*')
     {
        str1[count]=*s;
        count++;
     }
    }
    str1[count]='\0';
    puts(str1);
}

删除前导*号,有第一个for循环就好了啊,最后输出printf("%s",s);不就行了?
另外19行为啥要s++呢?都不是 * 号,你s加1干啥?
现在你的代码while循环是个死循环,s都没有向后移动啊。完全没必要再搞个str1啊,25行的if啥目的呢???


for(int i=0;i<len;i++)
    {
      if(str[i]=='*')
      {
        s++;
      }
      else
      {
        //s++; //不是*,不要丢弃吧
        break;
      }
    }
    printf("s=%s\n",s);
    while(*s!='\0')
    {
      if (*s!='*') //删除前导的*,如果中间有*,这里是删除的,如果不删除,这个要去掉
     {
        str1[count]=*s;
        count++;
     }
     s++; //这里没有这一行,会导致死循环
    }