永发信息网

为什么这道c语言题要加 s2[i]='\0' ???

答案:1  悬赏:10  手机版
解决时间 2021-04-06 15:28
为什么这道c语言题要加 s2[i]='\0' ???
最佳答案
对于这个程序,strcat函数把s2缀合到s1上。此时s1比s2的有效字符长度要长,接下来的步骤是让s2的字符对应与截止到s1的空字符之前的所有对应位置的字符同步(不包括s1的空字符),而由于s1比s2长,所以导致s2被同步后,并不正确地以空字符结束,如果不对s2做结尾处理,则在接下来的puts输出的时候会输出奇怪的东西。
例如s1(假定字符串不含空格)是:a c j l \0
s2:b c s \0
strcat之后的结果会使得s1变成:a c j l b c s \0
循环之后会使s2变成:a c j l b c s ? ? ? ?...(后面全是)
其中问号是未定义的值,不一定是什么字符。
如果不s2[i]='\0'那么puts的输出就是:acjlbcs(后面还有一大堆乱七八糟的东西)
而做过处理后,输出结果就是正常的acjlbcs

望采纳追答(注意,不作处理的话有可能实际运行的时候看起来也是正常的,原因有二:①碰巧第一个?就是\0,②:被一起输出的?都是不可见字符)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
圆寸发型怎么剪好看,这种发型是圆寸吗?怎么
R语言 读取csv文件时 内容带有引号怎么办
单选题英国历史上的圈地运动A.开始于英国资产
照片的软件是什么,用什么软件能做出来漩涡这
索尼的半球摄像头SSC-CD33VP是索尼的问题产品
用英语翻译:我的年级是大四,专业是英语
怎样去除泳镜刮痕
饮食古诗词,关于饮食文化的古诗词
牛仔布钱包制作流程
中天大酒店怎么去啊,有知道地址的么
单选题甲状腺机能亢进病人情绪容易激动,其原
下列城市被誉为什么城?广州——( )昆明——
用硬盘再生器修复硬盘物理坏道后用mhdd还能扫
我是理科生,只考了三百九十分,我可以报考什
You phone him if you want to, but you ! H
推荐资讯
火把节是几月几日,今年也就是2015年桂林龙脊
权利工程机械经营处这个地址在什么地方,我要
单选题Mr. Bill Clinton was
下列哪种生物的卵具有卵壳结构A.青蛙、蟾蜍B.
怎么防止大米长虫子,方法1:我们是把大米装
霸气什么意思
男50岁,吃立普妥半年,最近手和小腿无力,走
三四厘米的巴西龟外塘养一年能长多大
长安学广告设计哪里好
方彤地址在什么地方,想过去办事
乞求炒饭中文版怎么听
如图所示,物体m与斜面体M一起静止在水平面上
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?