假定输入的字符串中只包含字母和号。请编写函数fun,它的功能是:除了字符串前导的号之外,将串中其他*号全部删除。在编写函数时,不得使用c语言提供的字符串函数。如 * * *A * *BC * *改为 * * * ABC
#include
void fun(char x[],int y)
{
int j;
for(j=0;jif(*(x+j)!='*')break;//数组中遇到第一个字母就跳出循环
printf("%c",*(x+j));
}
int k;
for(k=j+1;kif(*(x+k)=='*')continue;//第一个字母后面若是*号则直接进入下一次循环
else
{
printf("%c",*(x+k));
}
}
}
int main()
{
int i=0;
char ch;
char a[1000];
while((ch=getchar())!='\n')
{
*(a+i)=ch;
i++;
}
fun(a,i);
return 0;
}
问函数fun跳出第一个循环后为什么进入不了下一个循环,输出结果只有前导的几个*号?
void fun(char x[],int y)
{
int j;
for(j=0;j<y;j++)
{
if(*(x+j)!='*')break;//数组中遇到第一个字母就跳出循环
printf("%c",*(x+j));
}
int k;
for(k=j;k<y;k++) //for(k=j+1;k<y-j;k++)
{
if(*(x+k)=='*')continue;//第一个字母后面若是*号则直接进入下一次循环
else
{
printf("%c",*(x+k));
}
}
}