motion->bone_frames[0].name == model->bones[0].bone_name//it return 0 . it should be 1
motion->bone_frames[0].name.Compare(model->bones[0].bone_name)//it return 1 . it should be 0
wcscmp(motion->bone_frames[0].name.c_str(), model->bones[0].bone_name.c_str()) //it return 0 it should be 0 correct
我无法理解std :: string比较函数为什么wcscmp会产生不同的结果。
我能知道为什么这些结果有所不同吗? 它的长度是不同的原因吗?
答案 0 :(得分:5)
因为他们不平等。检查您附加的图片中字符串的大小。在第一个字符串末尾有'\0'
,也是字符。
答案 1 :(得分:3)
wcscmp
在点击L'\0'
时停止比较。 std::wstring
会考虑字符串的size()
。
字符串==
和compare
将返回"不同的"结果为第一个返回true
,第二个返回0
表示相等的字符串。见Differences between C++ string == and compare()?
答案 2 :(得分:0)
标准运算符==返回lhs.compare(rhs) == 0
。