C语言/gets()函数和scanf()函数关于字符串的输入

2023-10-16 08:27:53 浏览数 (1)

前言

在C语言中,有很多关于输入字符串的函数。在学习和使用C语言时,我们也无法避免需要输入字符串,因此本文是关于C语言中输入字符串的两个函数 gets() 和 scanf() 的。

一、gets()函数

功能:从标准输入流 stdin 中读取一行,并将其存储在缓冲区中。该行由第一个换行符 ('n') 之前的所有字符组成。

注意:预留存储字符串的空间要足够大.

头文件:

代码语言:javascript复制
#include<stdio.h>

代码示例:

代码语言:javascript复制
#include<stdio.h>

int main()
{
	char arr[20] = { 0 };
	gets(arr);
	printf("%sn", arr);

	return 0;
}

输入与输出:

代码语言:javascript复制
hs sfgs jsf,fh
hs sfgs jsf,fh

二、scanf()函数

功能:一般输入字符串、数组、整型...的函数(不多介绍啦)

注意:在使用scanf()函数输入字符串时,遇到空格,默认该字符串输入结束。

解决方案:输入字符串时将 %s 改为 %[^n]s 

头文件:

代码语言:javascript复制
#include<stdio.h>

代码示例:

代码语言:javascript复制
#include<stdio.h>

int main()
{
	char arr[20] = { 0 };
	scanf("%[^n]s", &arr);
	printf("%sn", arr);

	return 0;
}

输入与输出:

代码语言:javascript复制
fhaa sjgf df
fhaa sjgf df

总结

无论是scanf()函数,还是gets()函数,使用时都具有缺陷

这篇博客如果对你有帮助,给博主一个免费的点赞以示鼓励,欢迎各位

0 人点赞