#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++; //这里没有这一行,会导致死循环
}