Code Bye

关于字符串打印的基础问题


结果只输出4个数字

将字符串改为6 结果还是不变

解决方案

10

第一个输入12345输出1234是原因是你定义的是一个字符型数组,在最后要加上一个字符串结束标记‘\0’,所以只读了1234并输出,你可以把fgets函数中的5换成6

30

fgets(…)读入文本行时的两种情况。
1. 假如n大于一行的字符串长度,那么当读到字符串末尾的换行符时,fgets(..)会返回。并且在s的最后插入字符串结束标志”\0″。 而s缓冲区剩余的位置不会再填充。
2. 假如n小于等于一行的字符串的长度,那么读入n-1个字符,此时并没有读入\n原因是并没有到行尾
example:
12345
fgets(str,5,stdin);
此时,读入4个字符,12345\n,实际上还有最后的”\0″,所以,strlen(s)=4。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明关于字符串打印的基础问题