C++ 在尝试比较字符串 "=="或 CString.Find() 时什么更好

标签 c++

正如题主所说。 在 C++ 中,尝试比较字符串“==”或 CString.Find() 时哪个更好? 我有一个混合的大型应用程序 C++ 和 C# 代码。 我不是 C++ 开发人员。但我可以根据需要阅读和修改代码。 在 C++ 模块中,我们使用了很多 if ( A ==_T("B") then {},其中“A”是 CString 类型。 我发现 CString 有一个内置的 .find 方法,我想知道它是否是一个更好的选择。

谢谢

最佳答案

==CString::Find 进行比较不是同类:运算符 == 检查相等性,而 Find 在第二个时返回 true字符串包含在第一个中:

// A: "hello"
// B: "hell"
A == _T(B) // FALSE
A.Find(B)  // TRUE

作为 == 的替代方法,您可以使用 CString::Compare方法,并检查它返回的结果是否为零:

A.Compare(B) == 0 // FALSE

关于C++ 在尝试比较字符串 "=="或 CString.Find() 时什么更好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53780604/

相关文章:

C++ winsockets 线程问题

c++ - 跟踪 native 调用

c++ - 带有 "endl"的模板函数的 VS2015 编译错误

c++ - cmake force parallel .C.o 链接前编译

c++ - 输入trait以接收T::value_type(如果存在),否则为T

c++ - 在退出或程序结束时执行函数

C++:修改函数,尝试重新编译,得到对该函数的 undefined reference

c++ - 这是什么意思 reinterpret_cast<char *&>(a) = cp;

c++ - 使用 == 运算符将 char 与 0x80 进行比较总是会导致 false?

c++ - 在 OpenCV 中为我检测到的对象制作动画