C语言输出最后 会多一个乱码

#include<stdio.h>
#include<string.h>
int main()
{
char a[100],b[100];
gets(a);
int c = strlen(a);
int j = 0,i;
for(i=0;i<c;i++)
{
if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u')
{
b[j] = a[i];
j++;
}
}
j = strlen(b);
for(i=0;i<j;i++)
{
printf("%c",b[i]);
}
return 0;
}
如果我输入的是 abcdefg 有时候输出是正确 ae 多跑几次就会出现几次ae后面再加一个乱码 怎么回事?????

因为你没有初始化,char a[100]= {0};char b[100] = {0};这样子初始化以后就可以了,使用定义了字符数组后都必须要初始化,因为字符数组的长度是根据最后一位是不是''\0''决定的,如果没有初始化就会出现你这种乱码的问题了
温馨提示:答案为网友推荐,仅供参考
相似回答