
在C语言中,输入包含空格的字符串可以通过使用fgets函数、使用scanf函数配合格式控制符、使用gets函数(不推荐因为它不安全)来实现。这些方法各有优劣,推荐使用fgets函数。 fgets函数可以从标准输入读取一行,包括空格字符,并且还能避免缓冲区溢出的问题。下面将详细介绍这几种方法。
一、使用fgets函数
fgets函数是读取包含空格字符串的首选方法。它不仅能读取空格,还能防止缓冲区溢出。使用fgets函数读取字符串时,需要指定缓冲区的大小以及输入流。
#include <stdio.h>
int main() {
char str[100];
printf("Enter a string: ");
if (fgets(str, sizeof(str), stdin) != NULL) {
printf("You entered: %s", str);
} else {
printf("Error reading input.n");
}
return 0;
}
在上面的例子中,fgets函数读取最多99个字符(最后一个字符保留给终止符'