gets和printf的问题,关于字符串,求助,谢谢了!

曹宇 2011-11-22 10:50:07

#include <stdio.h>
#include <stdlib.h>

void main()
{
char a[100],b[100];
int i=0;
gets(a);
fflush(stdin);
while(a[i]!='\0')
{
b[i]=a[i];
i++;
}
printf("%s",b);
//或者用gets(b);
}
程序都能运行正确,但是比如我用gets输入123但是输出个123w 输入别的类如输入0000输出会是总会是在0000后面多出来一点别的东西有时候是小写字母,有时候是符号,有时候是汉字乱码。用printf出现的几率低点,但是还是会有这样的情况。。
请问为啥啊?
谢谢了!!
...全文
80 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
曹宇 2011-11-22
  • 打赏
  • 举报
回复
额,忘了这个了,非常感谢啊!看来还是太粗心了!学的不精。。呵呵!

谢谢了!
無_1024 2011-11-22
  • 打赏
  • 举报
回复

#include <stdio.h>
#include <stdlib.h>

void main()
{
char a[100],b[100];
int i=0;
gets(a);
fflush(stdin);
while(a[i]!='\0')
{
b[i]=a[i];
i++;
}
b[i] = '\0';
printf("%s\n",b);
//或者用gets(b);
}

無_1024 2011-11-22
  • 打赏
  • 举报
回复
没有结束符'\0'

69,382

社区成员

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

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