c语言 gets()会不会把原数组的值全部覆盖掉?比如原数组中有1234四个字符,通过gets输入abc,最终

 我来答
良彩荣宰黛
2020-02-11 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:27%
帮助的人:940万
展开全部
你的原数组是这样的{'1',
'2',
'3',
'4',
'\0'}
gets输入abc后是这样的{'a',
'b',
'c',
'\0',
'\0'}
gets函数会自动在读取的字符串后加一个空字符。所以‘4’被这个空字符覆盖了
祭永芬迮秋
2019-11-25 · TA获得超过3.8万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:2111万
展开全部
gets()函数是输入一个字符串。而字符串默认是以'\0'结尾。当你gets输入为abc的时候,存入数组的内容应该是abc'\0'
共4个字符,覆盖了原来的4个数字。
如果你输入的事ab
则存在原数组的内容则是ab_4
楼主求采纳呦
记得给问豆啊!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
拜玉英褚风
2020-02-12 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:28%
帮助的人:1190万
展开全部
gets得到的是字符串,而字符串是以'\0'结尾的啦。
如:
char
a[10];
gets(a);//你输入1234,则a里存储的内容是"1234\0",一共占了5个位置,不要忘了'\0'
gets(a);//这里你输入abc,则a存储的内容是"abc\0\0",看到没有两个\0了,而输出字符串,是遇到\0
//就结束的啦。如果你输入ab,则a存储的内容是"ab\04\0",你可以试着输出a[3],那么它会输出4,
//不信?你可以试一试啦
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式