函数gets()和puts()被声明在头文件stdio.h中。这两个函数涉及字符串的输入/输出操作。

C函数gets()

函数gets()允许用户输入一些字符,然后按下回车键。用户输入的所有字符将存储在一个字符数组中。为了将其转换成字符串,该数组末尾添加了空字符。gets()允许用户输入空格分隔的字符串。它返回用户输入的字符串。

声明

char[] gets(char[]);

使用gets()读取字符串

#include<stdio.h>

void main() {
    char s[30];
    printf("Enter the string? ");
    gets(s);
    printf("You entered %s", s);
}

输出

Enter the string? 
javatpoint is the best
You entered javatpoint is the best

函数gets()存在风险,因为它不执行任何数组边界检查,并且会持续读取字符,直到遇到换行符(Enter键)。这可能导致缓冲区溢出,为避免此风险,建议使用fgets()函数代替。fgets()函数确保最多只读取指定数量的字符,从而避免缓冲区溢出。下面是使用fgets()的示例。

C函数puts()

函数puts()与printf()函数非常相似。函数puts()用于在控制台上打印之前由gets()或scanf()函数读取的字符串。函数puts()返回一个整数值,表示打印在控制台上的字符数。由于它会在字符串后面打印一个额外的换行符,将光标移动到控制台的新行,因此puts()函数返回的整数值将始终等于字符串中的字符数加1。

声明

int puts(char[]);

让我们看一个使用gets()读取字符串并使用puts()在控制台上打印的示例。

#include<stdio.h>
#include<string.h>

int main() {
    char name[50];
    printf("Enter your name: ");
    gets(name); // 从用户读取字符串
    printf("Your name is: ");
    puts(name); // 显示字符串
    return 0;
}

输出:

Enter your name: Sonoo Jaiswal
Your name is: Sonoo Jaiswal

在上面的示例中,用户被要求输入一个字符串。函数gets()读取用户输入的字符串并将其存储在字符数组name中。然后使用puts()函数在控制台上打印该字符串。

标签: c语言, c语言教程, c语言技术, c语言学习, c语言学习教程, c语言下载, c语言开发, c语言入门教程, c语言进阶教程, c语言高级教程, c语言面试题, c语言笔试题, c语言编程思想