C 语言中的 GETS

C 语言的 gets 函数用于从标准输入设备 (stdin) 扫描或读取一行文本,并将其存储在字符串变量中。当读到换行符时,gets 函数将终止。

如何使用 C 语言编程中的 gets 从控制台读取字符串数据,以及 scanf 和 gets 之间的区别(附示例)。Gets 的基本语法如下所示。

char *gets(char *str)

或者我们可以简单地写成

gets(<variable name>)

C 语言编程中的 Gets 示例

gets 函数用于从控制台读取完整的字符集。这个程序将帮助你实际地理解这个 gets 函数。

提示:在使用此 Gets 函数之前,您必须包含 #include<stdio.h> 头文件。

#include <stdio.h> 

int main()
{
	char name[50];
	
	printf("\n Please Enter your Full Name: \n");
	gets(name);
	
	printf("=============\n");
	printf("%s", name);
	
	return 0;
}
 Please Enter your Full Name: 
Tutorial Gateway
=============
Tutorial Gateway

第一个 printf 语句会要求用户输入任何名称或字符串,用户指定的字符串将被分配给字符数组 name[50]。

printf("\n Please Enter your Full Name: \n");
gets(name);

接下来,我们使用 编程 printf 语句来打印输出。

printf("%s", name);

C 语言编程中 scanf 和 gets 的区别

这个程序将帮助您理解 scanf 语句和 gets 函数在此编程中的区别。以及为什么在处理字符串数据时,我们通常更喜欢使用 gets 而不是 scanf。

// gets function & scanf difference example

#include <stdio.h> 

int main()
{
	char name[50];
	
	printf("\n Please Enter your Full Name: \n");
	scanf("%s", name);
	//gets(name);
	
	printf("\n=============\n");
	printf("%s", name);
	
	return 0;
}
 Please Enter your Full Name: 
Learn This Programming

=============
Learn

您可以观察到,尽管我们输入了 Learn This Programming 作为文本,但我们得到的输出是 Learn。这是因为 scanf 函数会将 Learn 视为一个值,This 视为另一个值,而 Programming 视为第三个值。下面的截图将向您证明这一点。

Gets Function Example

让我注释掉 scanf(“%s”, name); 语句,并使用 gets 函数从控制台读取文本。

// gets function & scanf difference example

#include <stdio.h> 

int main()
{
	char name[50];
	
	printf("\n Please Enter your Full Name: \n");
	//scanf("%s", name);
	gets(name);
	
	printf("\n=============\n");
	printf("%s", name);
	
	return 0;
}
 Please Enter your Full Name: 
Learn C Programming

=============
Learn C Programming

从上面的结果可以看出,我们得到了完整的文本,没有任何遗漏的字母。

评论已关闭。