为什么后面程序未执行

#include<stdio.h>
void fun( chara)
{
int i,b,h,k=0;char p[81];
for(i=0;a[i]!='\n';i++)
h=i;
for(i=0;a[i]=='
';i++)
b=i;
for(i=b;i<h;i++)
p[k++]=a[i];
for(i=h-b;i<h;i++)
p[k++]=a[i];k=0;
for(i=0;i<h;i++)
a[k++]=p[i];
a[h]='\0';

}
main()
{char s[81];int n=0;
printf("Enter a string:\n");gets(s);
fun(s);
printf("The string after moveing:\n");
puts(s);
}
问题

img


为什么变成下面这样的了

img

for(i=0;a[i]!='\0';i++)
错误好几处,修改如下:

#include<stdio.h>
void fun( char *a)
{
    int i,b,h,k=0;char p[81];
    for(i=0;a[i]!='\0';i++)
        h=i;
    for(i=0;a[i]=='*';i++)
        b=i;
    for(i=b+1;i<=h;i++)
        p[k++]=a[i];
    for(i=0;i<=b;i++)
        p[k++]=a[i];
    k=0;
    for(i=0;i<=h;i++)
        a[k++]=p[i];
    a[k]='\0';

}
int main()
{
    char s[81];int n=0;
    printf("Enter a string:\n");gets(s);
    fun(s);
    printf("The string after moveing:\n");
    puts(s);
    return 0;
}

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632