char[]/char*属于C风格字符串,std::string属于标准C++字符串,二者均视为C/C++字符串,CString是MFC中的字符串。以下分别介绍C/C++/MFC字符串长度计算和判空。
一. C/C++/MFC 字符串长度计算
1.1 char[]/char * 字符串(C风格字符串)
- 计算C字符数组占用字节大小 (单位:字节)
sizeof(chStr)
用例:
const char chStr[] = "abcdefeg";
int nLen = sizeof(chStr);
printf("%d\n", nLen);
// 结果:9
- 计算字符串实际字节数 不含结尾符 ‘\0’ (单位:字节)
size_t strlen(const char str) //ASCII字符串
size_t wcslen(const wchar_t str) //宽字符串
用例:
const char chStr[] = "abcdefeg";
int nLen = strlen(str);
printf("%d\n", nLen);
// 结果:8
1.2 std::string 字符串 (标准C++字符串)
size_t length() const (单位:字节)
size_t size() const (单位:字节)
注:string的成员方法length()和size()等价。
string szStr = "abcdefeg";
int nLen = szStr.length();
printf("%d\n", nLen);
// 结果:8
nLen = szStr.size();
printf("%d\n", nLen);
// 结果:8
1.3 CString 字符串 (MFC中的字符串)
int GetLength()
二. C/C++/MFC 字符串判空
1.1 char[]/char * 字符串(C字符串)
- if (0 == strlen(str))
1.2 std::string 字符串 (标准C++字符串)
- if(str.empty())
- if(0 == str.size())
- if(0 == str.length())
1.3 CString 字符串 (MFC中的字符串)
- if(0 == str.GetLength())