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

时间:2014-03-11 04:31:25

标签: c++ char compare strncmp

我想要做的就是传递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;
    }

我对此有何看法?

修改: haaaa,!=而非==呐喊:)

1 个答案:

答案 0 :(得分:1)

如果您只想比较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();
}