我正在编译我的C代码,并得到两个错误:
警告:传递strcmp的参数2使得指针来自整数而没有强制转换
和
警告:注意:预期的const char*但参数的类型为int
我的主要是:
int main(int argc, char *argv[])
{
//check to make sure that the command line arguments are valid
if(argc!=3)
{
printf("invalid function call try again\n");
}
//else to choose the proper command
else
{
//reverse routine A
if(strcmp(argv[2],'a'||'A')==0) //line 138
{
reva(argv[1]);
}
//reverse routine B
else if(strcmp(argv[2],'b'||'B')==0) //line 143
{
revb(argv[1]);
}
//reverse routine C
else if(strcmp(argv[2],'c'||'C')==0) //line 148
{
revc(argv[1]);
}
//unacceptable command line argumant
else
{
printf("unacceptable command line argument for reverse routine try again:\n");
}
}
}
Run Code Online (Sandbox Code Playgroud)
它意味着它所说的. 'a'||'A'是一个整数 - 具体来说,它是整数1.第二个参数strcmp必须是字符串,而不是整数.
您似乎打算argv[2]与a和进行比较A.你需要两个不同的strcmp电话.此外,您需要使用双引号,而不是单引号.