首页 > 解决方案 > 如何使用C中的strstr()函数检查字符串中是否存在char

问题描述

这一定是一个关于 char 数据类型和指针的简单问题。

void main() {

    const char* a;
    char character = 65;
    a = &character;

    printf("%c \n", character); // PRINTS 'A' AS EXPECTED

    if (strstr("ABC", a)) { 
        printf("found \n");
    }
    else {
        printf("not found\n"); // goes into else
    }
}

我不明白为什么它不进入第一个 if 语句。

标签: arrayscstringpointerschar

解决方案


在调用 strstr 之前,您需要终止a字符串以使其成为正确的 C 字符串:

以下任何一项:

if (strstr("ABC", "A"))
{
    // found
}

或者

char a[2] = {'A', '\0'};
if (strstr("ABC", a))
{
    // found
}

或者

const char* a = "A";
if (strstr("ABC", a))
{
    // found
}

推荐阅读