Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;std::string'==';运算符和比较方法返回的值不等于相等字符串_C++_String_Return_Std - Fatal编程技术网

C++ c++;std::string'==';运算符和比较方法返回的值不等于相等字符串

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

我无法理解std::字符串比较函数为什么与wcscmp的结果不同

我能知道为什么这些结果不同吗?
这是长度不同的原因吗?

因为它们不相等。检查已附加图像中字符串的大小。在第一个字符串中,字符串末尾有
'\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