0

我要做的就是传入 achar* 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,!=不是== 哎呀:)

4

1 回答 1

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();
}
于 2014-03-11T04:55:17.323 回答