C语言里面这个puts和printf看不懂啊

为啥用printf打印结果的时候Ilikec循环两遍,hehatec只循环一遍呢?而且19个字符的话为什么空格不算在内呢?求详解。... 为啥用printf打印结果的时候I like c循环两遍,he hate c只循环一遍呢?而且19个字符的话为什么空格不算在内呢?求详解。 展开
 我来答
cdyzxy
2019-04-13 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3647万
展开全部

puts是输出字符串,遇到字符串中的0值时结束,并且输出回车

printf也是输出字符串,但没有自动加换行的功能,因此你看到两行前面到大写C都输出一致

而用循环逐一输出字符数组内容,遇到0也不会自动结束,由于0字符无法显示输出空字符,不占输出位置,从头输出时,前面的内容与puts是一致的,因此你看到又重复输出了到大写C的内容,之后才是后续内容,这部分是前面两个语句无法输出的,属于另一截字符串内容了

数组中存放了两个字符串,如果想与循环输出效果相同的内容,可以写:

printf("%s%s",str,str+9); //这里给出了两个字符串起始位置,每个字符串输出遇到0则结束

lusir
2019-04-13 · 知道合伙人IT服务行家
lusir
知道合伙人IT服务行家
采纳数:89 获赞数:166
网络工程师,DCS开发核心工程师,公司研发先进

向TA提问 私信TA
展开全部

\0代表字符数串的结束标志,不是空格!

也就是字符数组的最后一位加上的'\0'

\0的ASCII码为0,也就是空字符

上面的就是从字符数组的开始读取,直到最后字符串结束标志'\0'。

字符串总是以'\0'作为串的结束符。因此当把一个字符串存入一个数组时,也把结束符'\0'存入数组,并以此作为该字符串是否结束的标志。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式