判斷CString字串為空
阿新 • • 發佈:2019-01-29
判斷一個CString是否為空
用GetLength()<=0好,還是==""好?
CString str;
str += '\0';
int len = str.GetLength();
得到len=1;
但str=="", 返回的是true;
因為真正比較的時候只是單純的逐個字元比較, '\0'作為結束符.
CString str2;
str==str2返回也是true, 因為str2被隱式轉換為LPTCSTR, 比較也是一樣的.
所以說應避免str += '\0'這樣的寫法.
在CString的使用過程中應該忘記'\0'的存在?
但宣告一個char str[]; 必須memset(...)為0值,不然麻煩多.
結論:GetLength()<=0 好
====================另外的方法======================================
if(str.IsEmpty())
str == _T( " ");
也可以.compare(_T( " "))==0啊
if(string== " ")
簡單直接。
============================================
要是建立一個空CString 字串 又怎麼初始化比較好?
我現在都這樣
CString str = _T( " ");