为什么输出字符数组出现乱码?

wenxian8 2011-03-15 01:07:51


#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
void main()
{
srand((unsigned)time(NULL));
char a[40];
int i;
for(i=0;i<20;i++)
{
a[i]=rand()%(122-97+1)+97;
}
printf("%s",a); // 为什么输出部分字符之后,出现了: 烫烫烫烫烫烫烫烫烫烫烫烫? 这些 文字啊? printf("\n");
}

为什么会发生这种情况,如何解决?
注意: 我只是初始化20个字符哦
...全文
2409 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
辰岡墨竹 2011-03-15
  • 打赏
  • 举报
回复 2
char a[40] = {0};
一定要先初始化数组。
Meteor_Code 2011-03-15
  • 打赏
  • 举报
回复
果然很烫
cpu温度太高
alang512 2011-03-15
  • 打赏
  • 举报
回复 1
输出时找不到字符串结束符就会这样
yyg990441 2011-03-15
  • 打赏
  • 举报
回复 1
[Quote=引用 1 楼 alang512 的回复:]
添加一个结束字符: a[i]='\0';
或者在初始化字符数组a的时候,首先 初始化字符数组a的内存,memset(a,0,40);
[/Quote]
+1
alang512 2011-03-15
  • 打赏
  • 举报
回复 1
添加一个结束字符: a[i]='\0';
或者在初始化字符数组a的时候,首先 初始化字符数组a的内存,memset(a,0,40);

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧