gpt4 book ai didi

c - 不知道如何在 C 中检查输入参数

转载 作者:行者123 更新时间:2023-12-04 08:53:07 25 4
gpt4 key购买 nike

我想检查我的 C 程序的第二个输入参数是 -f 还是 -p。我正在使用 if 语句来检查这一点,由于某种原因,它无法将参数识别为字符串,但是当我打印参数时,它看起来是相同的。我尝试了两种方法,第一种方法是将参数复制到字符数组,第二种方法是直接检查参数。我错过了什么?

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

int main(int argc, char *argv[])
{
char flag[3] = "";
memcpy(flag, argv[1],3);
printf("%s\n", flag);

// check that the second argument is either -f or -p
if (flag == "-f")
{
printf("1");
}
else if (argv[1] == "-p")
{
printf("2");
}
else
{
fprintf(stderr, "ERROR: Second argument %s must be <-f> or <-p>\n", argv[1]);
exit(EXIT_FAILURE);
}
}

最佳答案

C 不是 C++Python . ==运算符不适用于比较字符串。是做什么,不是你想要它做什么。它比较两个指针。
您应使用 strcmp函数族。

if(strcmp(flag, "-f") == 0){
/* equals */
}
if(strncmp(flag, "-f", 2) == 0){
/* equals */
}

关于c - 不知道如何在 C 中检查输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63984966/

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