假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。在编写函数时,不得使用c语言提供的字符串函数。

假定输入的字符串中只包含字母和号。请编写函数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));

        }

    }
}