解决scanf无法完整获取带空格字符串问题

一般情况下我们都会选择用scanf获取字符串,但是当字符串中含有空格时就会出现以下情况

#include
int main()
{
	char arr[10];
	scanf("%s",arr);
	printf("%s", arr);
	return 0;
}

解决scanf无法完整获取带空格字符串问题_第1张图片

我们发现scanf读到空格就结束了,只读了空格前的那部分

为了解决这种问题,我提供两个解决方法

1、用gets()函数获取

gets()函数可以获取带空格的字符串,直到遇到‘\n’结束

#include
int main()
{
	char arr[10];
	gets(arr);
	printf("%s", arr);
	return 0;
}

 解决scanf无法完整获取带空格字符串问题_第2张图片

2、用scanf("%[^\n]",arr);

当我们喜欢用scanf获取完整字符串时,就可以用scanf("%[^\n]",arr);,但是这种方法有点麻烦,不推荐使用

#include
int main()
{
	char arr[10];
	scanf("%[^\n]", arr);
	printf("%s", arr);
	return 0;
}

解决scanf无法完整获取带空格字符串问题_第3张图片

你可能感兴趣的:(C语言,c语言)