標準庫std::string判斷相等的問題

std::string s = "123";
std::string s1 = "123";
s1.push_back('\0');
bool b = (s == s1);

按照C字符串的規則,我們能判斷“123\0”與"123\0\0"是一樣的,但上面的結果是b爲false,在某些情況下可能會踩坑。所以如果我們要根據C字符串的規則比較兩個字符串時,應該使用:bool b = (strcmp(s.c_str(), s1.c_str()) == 0);來判斷兩字符串是否相等。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章