gpt4 book ai didi

c - 如何将 argv 与元素数组进行比较?

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

我正在尝试查看我创建的键数组是否包含来自 argv 的命令行参数,但我不断收到错误消息:

"incompatible pointer types passing 'char **' to parameter of type 'const char *';"

我如何比较代码中的这两个参数?

char *scale_array[] = {"A", "A#", "B", "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#"};

for (int i = 0; i < (sizeof(scale_array) / sizeof(char)); i += 1) {
if (strcmp(argv, scale_array[i]) == 0) {
printf("Found it!");
}
else {

}

最佳答案

您没有正确使用 argv 来访问命令行输入字符串。此外,数组大小 必须像这样确定(在您的情况下)

(sizeof(scale_array) / sizeof(char*))

这里是修改后的多命令行输入代码。

int main(int argc, char** argv)
{
char *scale_array[] = {"A", "A#", "B", "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#"};
int j = 1;
for (int i = 0; i < (sizeof(scale_array) / sizeof(char*)); i++)
{
if (strcmp(argv[j], scale_array[i]) == 0)
{
printf("Found it! %s \n", argv[j]);
j++;
i = -1;
}

if(j == argc)
{
break;
}
}
return 0;
}

希望这对您有所帮助。

关于c - 如何将 argv 与元素数组进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36161932/

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