我正在通過遺留代碼修復問題,發現以下列方式檢查c_str不起作用。但是,如果我改變比較string.empty()它的作品。所以我的問題解決了,但我不知道爲什麼c_str比較不起作用。任何想法爲什麼?
謝謝!
我正在使用-gcc版本4.1.2 20080704(Red Hat 4.1.2-46)。c_str()== NULL不起作用
#include <iostream>
using namespace std;
int main()
{
string a="";
if (a.c_str() == NULL)
{
cout <<"char says empty"<<endl;
}
if (a.empty())
{
cout << "string says empty"<<endl;
}
}
輸出是─
串說我空虛
真的嗎?我的意思是一個空不是NULL,NULL!=「」。 – daniel
我認爲標準實際*要求* std :: string :: c_str()'返回一個非空指針。 –
空字符串和根本沒有字符串是兩個不同的東西。 –