std::string类型变量比较的问题

std::string型变量比较是,最好是两个std::string变量比较
如std::string和char*比较涉及到\0的问题,
std::string str(“asdf”);
str == “asdf”
这个比较是相等的

char szTmp[4] ; 1
memcpy(szTmp,”asdf”,4);
str == szTmp
这个是不相等的

char szTmp[5]={0}; 2
memcpy(szTmp,”asdf”,4);
str == szTmp
这个是相等的

在1例和2例中字符串的长度都是一样的内容也一样,但是2例中有‘\0‘结尾,才比较相等。所以std::string类型的变量比较时是要比较结尾‘\0’的。

你可能感兴趣的:(c++)