scanf() 读取字符串时以空格为分隔,遇到空格就认为当前字符串结束了,所以无法读取含有空格的字符串。 gets() 认为空格也是字符串的一部分,只有遇到回车键时才认为字符串输入结束,所以,不管输入了多少个空格,只要不按下回车键,对 gets() 来说就是一个完整的字符串。 也就是说,gets() 能读取含有空格的字符串,而 scanf() 不能。 相关文章: C语言输入带空格的字符串 2021-12-29 c语言中怎样用scanf()读入带空格的字符串? 2022-12-23 C语言风格字符串的概念、定义、输入字符串、输出字符串 2021-11-14 C++如何输入含空格的字符串 2022-12-23 关于C语言中用scanf语句输入带有空格字符串问题 2021-08-04 字符串输入 gets(s)与 scanf(\"%s\",&s) - Joanna_zero 2021-09-19 C/C++带有空格的字符串输入 2022-01-09