puts()
属于标准库 <stdio.h>
函数原型:
int puts(const char *str)
str – 这是要被写入的 C 字符串.
如果成功, 该函数返回一个非负值为字符串长度 (包括末尾的 \0), 如果发生错误则返回 EOF.
作用: puts() 函数只显示字符串, 把一个字符串写入到标准输出 stdout, 直到空字符, 但不包括空字符. 行末自动添加换行符.
给 puts() 函数一个字符的地址,就一直向后输出字符,直至遇到空字符,不输出空字符,自动添加一个换行符。
程序示例:
#include<stdio.h>
int main(void)
{
char str1[] = "hello";
puts(str1);
puts(str1);
return 0;
}
结果:
hello
hello
可以看出自动换行了.
gets()
属于标准库 <stdio.h>
函数原型:
char *gets(char *str);
只有一个参数。参数类型为 char* 型,即 str 可以是一个字符指针变量名,也可以是一个字符数组名。
gets() 函数的功能是从输入缓冲区中读取一个字符串存储到字符指针变量 str 所指向的内存空间。
gets() 函数可以读取整行输入, 直到遇到换行符, 然后丢弃换行符, 储存其余字符, 并在这些字符的末尾添加一个空字符使其成为一个 C 字符串.
gets() 经常和 puts() 配对使用. puts() 用于显示字符串, 并自动添加换行符.
程序示例:
#include<stdio.h>
int main(void)
{
char ch[20] = {
'\0' };
printf("请输入字符串:");
gets(ch);
puts(ch);
return 0;
}
结果:
请输入字符串:i love you!
i love you!
gets() 函数不安全的地方: 只有一个参数, 即读入的这个字符串应该放在内存中的位置, 而不知道这个位置能否放得下你读进来的这么多内容.