gpt4 book ai didi

c - 为什么使用 %s 时仅扫描并存储输入句子中的第一个单词?

转载 作者:行者123 更新时间:2023-11-30 21:00:46 25 4
gpt4 key购买 nike

我正在尝试显示用户输入的答案 answer2但它只显示完整输入句子的第一个单词。

#include <stdio.h>
int main()
{
char answer[20];
char answer1[20];
char answer2[100000];
printf("What is your first name \n");
scanf(" %s",answer);
printf("What is your favorite color \n");
scanf(" %s",answer1);
printf("What is your quest \n");
scanf(" %s",answer2);
printf("Your name is %s,Your favorite color is %s,and your quest is s %s",answer,answer1,answer2);
return 0;
}

Screenshot of Program running

最佳答案

%sscanf() 在遇到空格时停止扫描。因此,您不能使用它来扫描多个单词

引用标准,用于 %s 转换说明符,使用 scanf()

s Matches a sequence of non-white-space characters.

因此,它将扫描直到在输入中找到空格。包含多个单词(以空格分隔)的输入将不会被完全扫描,只会扫描并存储第一个单词

相反,更好的方法是使用 fgets() to 扫描包含空格的输入,然后去掉尾随换行符并标记化(如果需要)。

关于c - 为什么使用 %s 时仅扫描并存储输入句子中的第一个单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38904145/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com