我试图将用户输入与字符串进行比较,每次编译时,它都会给我这个警告:
警告:null参数,其中非null需要(参数2)
每个“if”语句都会出现此警告。我不知道它是否会影响实际结果,但我真的想知道如何摆脱它。这是有问题的代码:
void AddBorder(unsigned char R[WIDTH][HEIGHT], unsigned char G[WIDTH][HEIGHT], unsigned char B[WIDTH][HEIGHT],
char color[SLEN], int border_width)
{
int x,y,a=0,b=0,c=0;
printf("Enter border width:");
scanf("%d", &border_width);
printf("Availble border colors: black, white, red, green, blue, yellow, cyan, pink, orange.\n");
printf("Select border color from the options:");
scanf("%s", color);
if (strcmp(color, "black" == 0))
{
a=0;
b=0;
c=0;
}
if (strcmp(color, "pink" == 0))
{
a=255;
b=192;
c=203;
}
if (strcmp(color, "white" == 0))
{
a=255;
b=255;
c=255;
}
for (y=0; y<HEIGHT; y++)
{
for (x=0; x<WIDTH; x++)
{
R[x][y]=0;
G[x][y]=0;
B[x][y]=0;
}
}
}
答案 0 :(得分:2)
if (strcmp(color, "black" == 0))
^ wrong placement of )
您在此)
中的展示位置是错误的 -
if (strcmp(color, "black") == 0) //correct statement
类似于所有if
条件
答案 1 :(得分:1)
你有几个例子,你的括号在错误的地方,例如
if (strcmp(color, "black" == 0))
应该是:
if (strcmp(color, "black") == 0)
答案 2 :(得分:1)
您已将== 0
放在括号内。试试这个:
if (strcmp(color, "black") == 0)
{
a=0;
b=0;
c=0;
}
if (strcmp(color, "pink") == 0)
{
a=255;
b=192;
c=203;
}
if (strcmp(color, "white") == 0)
{
a=255;
b=255;
c=255;
}
答案 3 :(得分:1)
您需要将if
语句更改为
if (strcmp(color, "black") == 0)
因为,我相信你想要的是比较两个字符串,并检查strcmp()
的返回值0
答案 4 :(得分:0)
问题在于if中的所有strcmp(颜色,“block”== 0)。而不是这个你必须使用strcmp(颜色,“黑色”)== 0.所以修改你的代码如下。 它现在不会发出警告。
void AddBorder(unsigned char R[WIDTH][HEIGHT], unsigned char G[WIDTH][HEIGHT], unsigned char B[WIDTH][HEIGHT],
char color[SLEN], int border_width)
{
int x,y,a=0,b=0,c=0;
printf("Enter border width:");
scanf("%d", &border_width);
printf("Availble border colors: black, white, red, green, blue, yellow, cyan, pink, orange.\n");
printf("Select border color from the options:");
scanf("%s", color);
if (strcmp(color, "black") == 0)
{
a=0;
b=0;
c=0;
}
if (strcmp(color, "pink") == 0)
{
a=255;
b=192;
c=203;
}
if (strcmp(color, "white") == 0)
{
a=255;
b=255;
c=255;
}
for (y=0; y<HEIGHT; y++)
{
for (x=0; x<WIDTH; x++)
{
R[x][y]=0;
G[x][y]=0;
B[x][y]=0;
}
}
}