在C语言里,puts()是标准库stdio.h提供的一个字符串输出函数,它的作用是将传入的字符串写到标准输出设备,通常是终端屏幕,并在输出结束后自动追加一个换行符。与printf()不同,puts()不需要格式控制符,调用时只需要给出字符串的首地址即可。

puts()函数的基本用法
puts()的函数原型如下:
#include <stdio.h> int puts(const char *str);
参数str指向一个以空字符' '结尾的字符数组或字符串常量。如果函数执行成功,会返回一个非负整数;失败则返回EOF。
简单示例
#include <stdio.h>
int main(void) {
char msg[] = "你好,C语言";
/* 使用puts输出字符串,会自动换行 */
puts(msg);
puts("这是第二行");
return 0;
}
上面代码运行后,屏幕会显示两行文字,因为puts()每次输出都会自带换行。
puts()与printf()的区别
虽然printf()也能输出字符串,但两者在设计目的上有明显差异:
- puts()只能输出字符串,不支持格式化;printf()可以通过%s、%d等控制符输出多种类型数据。
- puts()在输出字符串后自动追加换行;printf()不会自动换行,需要手动写n。
- 在仅输出字符串时,puts()代码更简短,可读性更好。
对比代码
#include <stdio.h>
int main(void) {
char s[] = "test";
puts(s); /* 输出test并换行 */
printf("%sn", s); /* 同样效果,但需写格式符和换行符 */
return 0;
}
使用puts()的注意事项
在使用puts()时,有几个容易出错的地方需要留意:
| 注意点 | 说明 |
|---|---|
| 字符串必须正确结尾 | 若字符数组没有' ',puts()会继续读内存直到遇到空字符,导致乱码或崩溃 |
| 不要传入非字符串指针 | puts()期望const char*类型,传其他类型可能引发未定义行为 |
| 换行不可关闭 | 若不想换行,应使用fputs()或printf()代替 |
小结
总的来说,C语言里的puts()函数作用就是简洁地把一个字符串输出到屏幕并自动换行。它适合在调试或写小型演示程序时快速打印提示信息。理解puts()有助于掌握C语言字符串和指针的基本概念,也能让我们在合适场景下写出更清晰的代码。