C 语言的字符串函数 puts() 和 gets()

文章目录

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() 函数不安全的地方: 只有一个参数, 即读入的这个字符串应该放在内存中的位置, 而不知道这个位置能否放得下你读进来的这么多内容.

猜你喜欢

转载自blog.csdn.net/chengkai730/article/details/132393373
今日推荐