我正在尝试查看我创建的键数组是否包含来自 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;
}
希望这对您有所帮助。
我是一名优秀的程序员,十分优秀!