将char*相互比较
compare char* with each other
我目前有一个名为getResult的方法,它返回const char*,现在我正在做类似于的事情
if(getResult=="Something")
{
...
}
然而,这种类型的比较似乎不起作用。"Something"不是也是一个常量字符指针吗?或者在这种情况下是在比较地址?
是的,正在比较地址。要比较两个字符串的内容,请使用strcmp
函数:
if (strcmp(getResult, "Something") == 0) {
...
}
如果getResult
是一个方法(成员函数),您需要调用来比较结果,因此您可能需要:
if (something.getResult() == std::string("Something"))
// ...
另一方面,如果getResult
实际上是一个指向char的指针(或指向const char的指针),则需要在比较之前将要比较的内容之一转换为string
):
if (getResult == std::string("Something"))
或:
if (std::string(getResult) == "something))
IMO,这个应该几乎从来都不是必要的——通常应该在整个过程中使用std::string
,而不是从一个指向〔const〕char的指针开始,然后进行转换。
如果比较C/C++中的两个字符串常量,则比较的是每个字符串的实际地址,而不是内容。在2个c字符串上使用strcmp
或使用c++的std::string
类将比较内容。
相关文章:
- 如何在C++中比较两个char数组
- 将动态阵列中的字符与char进行比较
- 有没有办法比较用 int 初始化的 char 类型的数组的 2 个元素
- 如何在C/ C 中比较两个char的两个2D阵列
- C++:如何将 char 变量分配给向量<char>并访问该向量的元素进行比较?
- 比较 char* 和 wchar_t* 类型的 C 字符串
- char*与上一条指令中设置的值的比较未优化
- 在函数内部填充和比较char*
- 如何将 char 类型数组传递给函数并将第一个字符数组复制到第二个图表数组并使用 c++ 进行比较
- 使用与char的比较
- 将 char * 与字符串文本进行比较时出现问题
- 为什么INT(char)的比较不起作用
- 如何比较strstr(lpcwstr,char*);
- 如何将字符串与多个char C 进行比较
- C 2D char阵列不当比较
- 比较终端中通过char *argv []的参数
- 在Windows操作系统中,c++程序在比较char和数组时关闭
- 比较Char指针
- 在 c++ 中比较 char 和 Int
- 比较 std::字符串与常量 vs 比较 char 数组与常量 In C++.