C++ c++;std::string'==';运算符和比较方法返回的值不等于相等字符串
我无法理解std::字符串比较函数为什么与wcscmp的结果不同 我能知道为什么这些结果不同吗?C++ c++;std::string'==';运算符和比较方法返回的值不等于相等字符串,c++,string,return,std,C++,String,Return,Std,我无法理解std::字符串比较函数为什么与wcscmp的结果不同 我能知道为什么这些结果不同吗? 这是长度不同的原因吗?因为它们不相等。检查已附加图像中字符串的大小。在第一个字符串中,字符串末尾有'\0',它们也是字符。标准运算符==返回lhs.compare(rhs)==0wcscmp在点击L'\0'时停止比较。A STD::WScRe>/Cord>将考虑字符串的 siz()/。< /P> 字符串=和compare将返回“不同”结果,因为第一个字符串返回true,第二个字符串返回0。请参见st
这是长度不同的原因吗?因为它们不相等。检查已附加图像中字符串的大小。在第一个字符串中,字符串末尾有
'\0'
,它们也是字符。标准运算符==返回lhs.compare(rhs)==0
wcscmp
在点击L'\0'
时停止比较。A<代码> STD::WScRe>/Cord>将考虑字符串的<代码> siz()/<代码>。< /P>
字符串
=
和compare
将返回“不同”结果,因为第一个字符串返回true
,第二个字符串返回0
。请参见std::string的平均值是比较方法是检查大小?或者不相等的原因是第二个字符串没有以null chracter结尾??Check@Bo Persson reply。看起来代码的某些部分正在向std::string
添加null终止符('\0'
),但std::string
没有(语义上)以null结尾。
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