将常量字符与字符串进行比较
Comparing const char to a string
我将常量字符与字符串进行比较时遇到问题...如果我使用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
}
返回:警告:值:应为 0.3c,即:0.3c
如果值的类型是 const char*,则表达式
value != "0.3c"
比较两个指针(地址),而不是字符串。您想比较字符串和字符串文字,以便可以使用strcmp
:
if(strcmp(value, "0.3c"))
{
// strings are not equal
}
else
{
// strings are equal
}
请记住,C++ 中的首选字符串类型是 std::string
。
对value
使用std::string
。
std::string value = SearchInfoString(msg, "shortversion");
然后,您可以正常比较它。如果由于任何原因根本无法使用字符串(返回值可以转换),请使用 strcmp
。
if (strcmp (value, "0.3c") != 0)
{
...
}
似乎SearchInfoString
返回一个char *
,基于你与Com_Printf
一起使用的方式。 因此,您可以使用strcmp()
将value
与"0.3c"
进行比较。 例如:
if (strcmp(value, "0.3c") != 0)
{
// Print warning
}
相关文章:
- 视觉C++使用 map 来比较字符串中的每个单词
- 我正在尝试从输入文件中读取,然后使用它们的子字符串比较字符串的特定部分
- 比较字符串的 GetLine 工作一次,然后比较之后不起作用
- C++使用关系运算符比较字符串
- 通过默认复制构造函数比较 C++ 字符串是否会影响性能,原因为何?
- C++ TCP 服务器比较字符串失败
- 如何在不复制的情况下比较字符串的一部分?
- 比较 C++ 字符串打印中的两个整数数组
- 如何比较字符串形式的临时变量
- std::out_of_range 比较字符串中的符号时出错
- 比较字符串大小写不区分的简单方法是什么?
- 比较字符串忽略 NUL
- 比较字符串(arduino)时出现问题
- 如何在C++中比较字符串
- 比较字符串对象等于向量中的元素
- C 比较字符串操作速度
- 需要比较字符串的某些元素
- 比较字符串 .c_str() 和普通字符串的差异
- C 比较字符串的字符
- 通过使用两个不同的队列比较字符串