gpt4 book ai didi

c - 如何在 C 中声明临时字符串以供重用?

转载 作者:太空狗 更新时间:2023-10-29 15:54:36 25 4
gpt4 key购买 nike

我有一个 while 循环,它接受用户输入,直到用户说退出,但我不确定如何正确声明字符串。如果用户只输入一个词,第二个变量将保持与前一个循环相同的值。

int main(int argc, char * argv[]){
char user_input[25];
char var1[25], var2[25];
while(strcmp(var1, "quit") != 0){
clear_buffer(user_input);
fgets(user_input, 30, stdin);
sscanf(user_input, "%s %s", var1, var2);
do_stuff(var1, var2);
}
printf("%s", "Done\n");

最佳答案

i am not sure how to declare the strings properly

字符串不是一种类型。它们是一种值(value)模式,就像我们不声明它们的其他值(value)一样;我们分配它们(在本例中使用 strcpy 和其他函数)。如果你说 int存储十的倍数,然后以 0 结尾......如果你说一个 char 的数组存储一个字符串,然后它在第一个 '\0' 处结束.你看到模式了吗?我们可以将 10 的倍数存储在不同类型的整数变量中,同样对于字符串,我们可以选择不同类型的字符数组。同样用于在 integer 中存储数值变量,当声明一个数组来存储一个字符串时,您需要确保该数组有足够的空间来存储该字符串的所有字符加上一个 '\0'。在最后。

If the user only inputs one word, the second variable will stay the same value from the previous loop.

查看sscanf的返回值.

例如,考虑int x = sscanf(user_input, "%s %s", var1, var2);时你可能想确定你给出的 2 个参数 sscanf被分配给,在这种情况下,您将检查 x == 2 .如果你只关心第一个参数被赋值,那么当 x == 1 时你会很高兴。 , 也。但是,如果 x <= 0那么你也不能相信 var1var2

关于c - 如何在 C 中声明临时字符串以供重用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29526612/

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