gpt4 book ai didi

C 用户输入数组用作 if 语句

转载 作者:太空宇宙 更新时间:2023-11-04 08:12:44 27 4
gpt4 key购买 nike

我正在编写从命令行获取的代码。用户将输入例如 ./a.out -l 2 4 6 到命令行。这里的目标是遍历数组并查看是否出现 '-l''-s'。如果 '-l' 出现它使 x = 1 ,如果 '-s' x = 2 如果两个 x = 0 都没有。现在抛出的问题是指针之间的比较和第 7 行和第 12 行的整数。还有第 12 行的多字符字符常量,我不确定为什么它在第 9 行没问题时被抛出。我将如何更改我的 if 语句以解决抛出的问题?我的代码如下:

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]){

int x;

for(; *argv != '\0'; argv++){
if(*argv == '-l'){
x = 1;
}
else if(*argv == '-s'){
x = 2;
}
else{
x = 0;
}
}
printf("%d",x);
return 0;
}

最佳答案

字符串用双引号指定,而不是用于字符的单引号。此外,您不能使用 == 来比较字符串。为此使用 strcmp:

if(strcmp(*argv,"-l") == 0){

...

if(strcmp(*argv,"-s") == 0){

您的输出也不会像您期望的那样。每次检查下一个参数时都会覆盖 x,因此结果将仅取决于最后一个参数。当满足两个条件之一时,您需要break 跳出循环。

关于C 用户输入数组用作 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38149625/

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