假定输入的字符串中只包含字母和星号。请编写程序:将字符串中的前导星号全部删除,中间和后面的星号不删除。
#include<stdio.h>
#define N 80
int main()
{
int i=0,k;
char a[N];
while(gets(a)){
while(a[i]=='*')
i++;
k=i;
for(i=0;a[k]!=0;i++,k++)
a[i]=a[k];
a[i]='\0';
printf("%s\n",a);}
return 0;
}
我想多组输入输出,为什么到第二次输出结果就不对呢?
#include<stdio.h>
#define N 80
int main()
{
int i=0,k;
char a[N];
while(gets(a)){
i=0;
while(1){
if(a[i]!='*')
i++;
else break;
}
for(i,k=i+1;a[k]!='\0';i++,k++)
a[i]=a[k];
a[i]='\0';
printf("%s\n",a);
}
return 0;
}
优化了一下 删除任意位置的先导 * 号