拷贝之后出现乱码

拷贝之后出现乱码

http://img1.sycdn.imooc.com//climg/5ae6aaaf00015c4909080517.jpg

老师请问为什么这样拷贝的话,拷贝完的字符串后面会出现乱码?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

您好,同学的写法会出现乱码是因为:判断条件在等于'\0'时会结束掉循环,那么数组里面是没有写入'\0'的,数组在输出时就会将后面的空内容也全部输出,但是编辑器解析之后就是乱码了。将while循环条件写为:while((*bg++ = *yl++)!= '\0');。这段内容会先进行++操作的,也就是将'\0'写入了数组,才判断的到等于'\0',结束掉循环的,在输出数组时检测到'\0'就不在输出之后内容了。如果解决了您的问题,请采纳,祝学习愉快!

  • MasonM 提问者 #1
    谢谢老师我懂了!
    2018-05-02 12:47:35
  • MasonM 提问者 #2
    老师我还想问一下,while((*bg++ = *yl++)!= '\0');是bg和yl递增再进行赋值,然后再进行判断是否等于'\0'吗?如果这样的话,那不就变成从e开始赋值了吗?求解!谢谢老师!
    2018-05-02 13:06:38
  • 好帮手慕查理 回复 提问者 MasonM #3
    您好,while((*bg++ = *yl++)!= '\0');中是先执行的*bg = *yl,然后又执行了*bg++和*yl++。在进行的判断。(++是先使用之后在进行++操作哦~)。祝学习愉快!
    2018-05-02 15:29:55
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
C++零基础入门 热门编程语言 二级考试必备
  • 参与学习       529    人
  • 提交作业       110    份
  • 解答问题       593    个

无论您是零基础、还是想晋升,亦或是想转型,C++无疑都是最佳选择。本路径共分为基础语法、指针与引用、面向对象三大模块,为你开启入门C++编程的大门!

了解课程
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码