1.结束符\0
结束符\0 ASCII码为0,即为空字符NULL,占用一个字符位。
所有的字符串操作函数,都会遇0而止
仅有字符数组(即char型数组)
字符数组的长度要比实际存储字符串的长度至少多1
(int型等其他数组的末尾不需要加\0)
2.输入函数
- 使用 scanf函数的%s格式 / gets()函数 输入字符串 ,识别空格/换行符作为输入结束,不需要在输入的字符串末尾加入'\0'
- 而scanf函数的%c格式用来输入单个字符,能够识别空格跟换行符并将其输入,并不同于其他输入方式(其他函数或其他格式)通过空格或换行来识别输入的结束,不需要在输入的字符串末尾加入'\0'为只识别单个字符)
- 使用getchar()输入字符串则需要在字符串末尾加入“\0”,否则printf和puts函数会因无法识别字符串末尾而输出一大堆乱码。
注意:
由于gets识别换行符\n作为输入结束,因此若scanf完一个整数后,如需使用gets函数,
需要先用getchar接收整数后的换行符,或应在scanf末尾加入\n
3.输出函数
puts函数和printf在输出字符串的时候遇到'\0'和'\n'分别是怎么处理的
- 如果有多个\0的话,这两个函数均是输出到第一个\0就终止了,
‘\0’作为一个字符串结束的标志 - 连续多个\n就是多次换行
就输出字符串上的功能而言,这两个函数的作用,效果完全一致
printf和puts的区别
c语言中,puts和printf函数有啥区别?
puts和printf函数的区别如下:
- 不同的换行符
puts()函数会自动在字符串末尾添加一个换行符,这意味着它会自动换行,而printf()函数没有此功能 - 输出内容不同
puts()函数只能输出字符串,不能对输出和转换指令进行标准化,而printf()函数可以
printf和puts的调用格式
1.printf
格式字符串包含三种类型的对象:
(1)字符串常量
(2)格式控制字符串
(3)转义字符
- 字符串常量按原样输出并在显示中用作提示。输出项在输出表列中给出,格式控制字符串和每个输出项在数量和类型上应一一对应。
- 格式控制字符串是以%开头的字符串,后跟各种格式控制字符,以指示输出数据的类型、宽度、精度等。
2.puts
(1)puts()函数只能输出字符串,不能输出值或执行格式转换。
(2)字符串可以直接写入puts()函数。例如:如:puts("Hello,world!")。
(3)puts与printf相同,puts()函数的作用与printf语句相同。注意:puts将在输出字符串之后自动输出回车
4.参考资料
参考资料来源:https://baike.baidu.com/item/puts%20%28%29?fromModule=lemma_search-box
参考资料来源:https://baike.baidu.com/item/printf/7467706?fromModule=lemma_search-box