警告:指针和整数之间的比较

时间:2017-05-30 02:30:19

标签: c

int main(void)
{
    char co;

        printf("Enter item code: ");
        scanf("%s", co);

    if(co == "ST200")
    {
         a1 += price * no * 0.90;
    }

}

警告:指针和整数之间的比较    if(co ==“ST200”&& card =='Y')

我在接受比赛后收到这样的信息。

2 个答案:

答案 0 :(得分:3)

您将co作为字符,但%s是字符串。

此外:

if(co == "ST200")

由于"ST200"是指向常量的指针而co未指向常量,因此这两者永远不会相等。那么比较的重点是什么呢?

坦率地说,在尝试编写使用它们的代码之前,您需要学习如何在C中处理字符串。

答案 1 :(得分:0)

编写此程序的正确方法是。

#include <stdio.h>
#include <string.h>
int main(void)
{
    char co[10];
    printf("Enter item code: ");
    scanf("%s", co);

if(!strcmp("ST200",co))
{
     a1 += price * no * 0.90;
}
}

co需要是一个存储字符串的数组。为了进行比较,您需要使用strcmp(const char *Str1,const char *Str2),当两个字符串匹配时,结果为零。所以之前使用not运算符。 另请参阅任何基础C书。希望这有帮助:)