C语言:给数组赋值时,为什么会出现乱码(数组使用必读)

标签:
c语言数组赋值乱码it |
分类: ■C语言 |
我们先看一个简单的例子:
#include<stdio.h>
void main()
{
}
照理说,该程序运行的结果是:ab
可是,实际上它的运行结果是:(下图)
http://s8/middle/63c66eb6xaa2588497027&690
在ab的后面跟了一些乱码!原因是没给a[2]和a[3]赋值,因此系统会任意给些乱码!
那么这个问题怎么解决呢?
以下是我总结的两种使用方案:
Case1:给数组初始化,赋空值(这是最好用的)
#include<stdio.h>
void main()
{
}
#include<stdio.h>
#include<string.h>
#define N 2
void main()
{
int count,i,j=0,k;
printf("Sample Input\n");
for(count=0;count<N;count++)
{
k=0;
fflush(stdin);
gets(input);
comp=getchar();
for(i=0;i<strlen(input);i++)
if(comp!=input[i])
{
saveString[j][k]=input[i];
k++;
}
saveString[j][k]='\0';
//将每一维数组的最后一个元素赋值为结束'\0',以保证数组顺利赋值
j++;
}
printf("Sample Output\n");
for(i=0;i<N;i++)
puts(saveString[i]);
}