gpt4 book ai didi

c - 在 C 中将 argv[1] 存储为 char 或 int

转载 作者:行者123 更新时间:2023-11-30 19:34:43 25 4
gpt4 key购买 nike

所以,我不确定是否应该尝试将 argv[1] 转换为 int,或者是否可以将其保留为 char。但我很难让 argv 按照我想要的方式运行。

我的终端输入将如下所示:

./a.out a

其中 argv[1] 可以是“a”或“d”。

问题:当尝试通过 if 语句传递它时,例如:

int main(int argc, char *argv[])
{
char *letter;
letter=argv[1];

printf(" %s %s ", argv[1], letter); //THIS prints correctly

//However, even when the input IS 'a', it will still print this:

if(letter != "a" || letter != "d")
printf("Input letter not 'a' or 'd'\n");
else{//More stuff//}
}

当我尝试自己修复它时,我遇到了各种各样的错误。我看到一些线程解释 argv[1][0] 并使用 atoi,但是在使用它之后,我无法将其打印出来。

最佳答案

将指针 argv[1] 的值与字符串文字 "a" 的第一个字符的地址进行比较是没有意义的“d”

直接写

#include <string.h>

//...

if( letter == NULL || ( strcmp( letter, "a" ) != 0 && strcmp( letter, "d" ) != 0 ) )
printf("Input letter not 'a' or 'd'\n");

关于c - 在 C 中将 argv[1] 存储为 char 或 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43507045/

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