scanf("%s", s);
时间: 2025-02-05 18:00:33 浏览: 9
C语言 scanf
函数读取字符串的方法
使用 %s
格式说明符
当使用 %s
来读取字符串时,遇到空白字符(如空格、制表符或换行符)即停止读入[^1]。
#include <stdio.h>
int main() {
char str1[80];
scanf("%s", str1);
printf("str1 = %s\n", str1);
}
此方式适用于不包含任何内部空格的简单单词型字符串输入。
处理含空格的字符串
对于含有空格的多词短语或其他复杂情况,则需采用不同的格式控制串来处理。一种常见做法是利用 %[
和 \n
] 结合的方式:
%[^\n]
: 表示匹配除换行符以外的所有字符序列直到遇见第一个换行为止,并将其作为有效数据存储起来[^2]。
char str2[80];
scanf("%[^\n]", str2); // 读到 '\n' 结束读取
printf("str2 = %s\n", str2);
这种方法可以捕获整行文本,包括其中可能存在的多个连续空格。
另外需要注意的是,在某些情况下为了防止缓冲区溢出风险以及更精确地限定所要获取的内容长度,可以在上述基础上进一步指定最大宽度参数:
- 如下所示通过设置
[79]
可以确保不会超过数组边界而引发潜在的安全隐患[^3]:
scanf("%79[^\n]", str2);
此外还有一点值得注意的就是每次调用 scanf()
后最好清理掉未被消费完毕的标准输入流中的残留物以免影响后续操作, 特别是在混合不同类型的数据项之间切换的时候.
相关推荐



















