对于我的生活,我无法比较这个数组的第一个字符

For the life of me, I can't compare the first character of this array

本文关键字:数组 字符 第一个 比较 我的生活      更新时间:2023-10-16

我想做的就是传递一个char* buffer,并将其与文字字符串"@"进行比较——为什么这对我来说如此困难?

    char* buffer = "@3702";
    string b(buffer);
    string c("@");
    if (strncmp(b.c_str(), c.c_str(), 1) == 0)
    {
        perror("Buffer malformated!");
        return false;
    }

我有什么不明白的吗?

编辑: 哈,!= ==哎呀:)

如果你只是想比较char*和使用strncmp(),你不需要为此使用stl字符串。

int main()
{
    char* buffer = "@3702";
    char* c = "@";
    if (strncmp(buffer, c, strlen(c)) == 0)
    {
        //same string
        return true;
    }
    else
    {
        //not same string
        return false;
    }
    getchar();
}

并且,记住char[]可以转换为char*,所以在这种情况下,上面的代码与下面的代码相似。

int main()
{
    char buffer[] = "@3702";
    char c[] = "@";
    if(buffer[0] == c[0])
    {
        //same string
        return true;
    }
    else
    {
        //not same string
        return false;
    }
    getchar();
}