C - 指针和整数 ('char *' 和 'int' 之间的比较

标签 c

我是 C 语言新手,在使用函数 strstr 时遇到问题。 Make 给了我一个我不明白的警告,任何人都可以解释一下吗?

warning: comparison between pointer and integer (char * and int) if (strstr(reference, number_start) == 1) warning generated.

我的代码:

#include <stdio.h>
#include <string.h>


int main (void) {
    char reference[]        = "34,37";
    char number[]           = "34567890123456";
    char number_start[]     = {number[0], number[1], '\0'};

    if (strstr(reference, number_start) == 1) {
        printf("Yup, iit's workin'\n");
    } else {
        printf("Try again, wookie\n");
    }

    return 0;
}

最佳答案

strstr()如果找到则返回指向第一个子字符串的指针,如果未找到则返回 NULL。

替换

if (strstr(reference, number_start) == 1) {

if (strstr(reference, number_start) != NULL) {

检查number_start是否在reference中。

关于C - 指针和整数 ('char *' 和 'int' 之间的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36024836/

相关文章:

您能解释一下这个 C 程序的输出吗?

c - 从c中的文件中读取名称和密码

从字符串中删除所有出现的字符的代码不起作用——但为什么呢?

c - 为什么我在使用 fprintf 时会出现不一致的行为?

c++ - 模拟窗口的移动并让它对碰撞使用react

以区分大小写的方式计算文件中字符出现的次数

C 共享库 : static variable initialization + global variable visibility among processes

c - ANSI C代码中的一维线性卷积?

c - (C 语言) 如何在使用 getchar() 时使用退格键;在这个功能?

c - 为什么 Linux 系统调用返回类型 "long"?