将const char与字符串进行比较

Jor*_*Phi 2 c++ if-statement const char

我有一个问题,比较一个const char和一个字符串......如果我使用Com_Printf("%s",值); 它返回我想要的(0.3c),但是如何将值转换为字符串并将其与0.3c进行比较?这就是我所拥有的:

value = SearchInfostring(msg, "shortversion");
if (value != "0.3c")
{
    Com_Printf (MSG_WARNING,
            Com_Printf (MSG_WARNING,
                "> WARNING: Value: Should be 0.3c, is:  %s \n",
                value);
//Run stuff
}
Run Code Online (Sandbox Code Playgroud)

返回:警告:值:应为0.3c,为:0.3c

Boj*_*zec 8

如果value的类型为const char*,则表达式

value != "0.3c"
Run Code Online (Sandbox Code Playgroud)

比较两个指针(地址),而不是字符串.您想比较字符串和字符串文字,因此可以使用strcmp:

if(strcmp(value, "0.3c"))
{
   // strings are not equal
}
else
{
   // strings are equal
}
Run Code Online (Sandbox Code Playgroud)

请记住,C++中首选的字符串类型是std::string.