输入一个字符数组,运用c语言除去里面的乘号,看看我编的程序哪里错了


#include<stdio.h>
int main()
{
    int i,j;
    char a[7];
    gets (a);
    for(i=0;i<=7;i++)
    {
        for(j=0;a[i]!=0;j++)
        if(a[i]!=*)
            a[i]=a[j];
    }
    puts(a);
    return 0;
}

img

 
#include<stdio.h>
int main()
{
    int i,j=0;
    char a[7],b[7];
    gets(a);
    for(i=0;i<7;i++)
    {
        if(a[i]!='*')
            b[j++]=a[i];
    }
    puts(b);
    return 0;
}

这思路是什么,是想怎么去?

星星号应该是在两个单引号里面吧'*'


for(j=0;a[i]!=0;j++)
        if(a[i]!=*)
            a[i]=a[j];
不对:
改为
for(j=0;a[i]!='\0';j++)
        if(a[i]!='*')
            a[i]=a[j];

#include<stdio.h>
int main()
{
    char str[99]="";
    int i=0,j=0;
    gets(str);
    for(;str[i]!='\0';i++)
        if(str[i]!='*'){str[j]=str[i];j++;}
        str[j]='\0';
        puts(str);
        return 0;
}

#include <stdio.h>
int main()
{
    int i, j;
    char a[7];
    gets(a);
    i = 0;
    for (j = 0; j <= 7; j++)
    {
        if (a[j] != '*')
            a[i++] = a[j];
    }
    puts(a);
    return 0;
}

满分答案,拿去,给个采纳就行

img

#include<stdio.h>
int main()
{
int k,j=0;
char a[7]= {'a','','j','','','t',''};
printf("原字符为: \n");
for(k=0; k<7; k++)
{
printf("%c ",a[k]);
}

char b[7];
for(k=0; k<7; k++)
{
    if(a[k]!='*')
    {
        b[j]=a[k];
        j++;
    }

}
printf("\n除去字符数组中的*号后:  \n");

for(k=0; k<j; k++)
{
    printf("%c ",b[k]);
}
printf("\n");
return 0;

}

img


对照图片加几个星号就行,星号发不出去