2024年4月19日发(作者:)

CStringT

CString

操作的字符类型:TCHAR

CStringA

操作的字符类型:char

CStringW

操作的字符类型:wchar_t

关于TCHAR, char, wchar_t三种字符类型的区别,会在随后的文章中详细解释!下面是

一、CString类的几种基本操作:

1、长度:GetLength();

CString str(_T("abc"));

int len = gth(); //len == 3

2、是否为空(即不含字符):IsEmpty();

3、清空字符串:Empty();

CString str(_T("abc"));

BOOL mEmpty = y(); //mEmpty == FALSE

();

mEmpty = y(); //mEmpty == TRUE

4、转换大小写:MakeUpper(),MakeLower();

5、转换顺序:MakeReverse();

二、字符串的查找

1、Find:从制定位置开始查找指定字符串,返回其位置(找不到返回-1)

CString str(_T("abcdefg"));

int idx = (_T("cde"), 0); //idx 的值为2;

2、ReverseFind:从字符串末尾开始查找指定的字符,返回其位置,找不到返回 -1,虽然是

从后向前查找,但是位置为从开始算起;

CString str(_T("abcdefg"));

int idx = eFind('e'); //idx 的值为4;

3、FindOneOf:查找参数中给定字符串中的任意字符,返回第一次出现的位置

CString str(_T("abcabcd"));

int idx = eOf(_T("cbd")); //idx 的值为1;

三、字符串的提取

Left,Mid,Right:分别实现从CString对象的左、中、右进行字符串的提取操作

CString str(_T("abcd"));

CString strResult = (2); //strResult == ab

strResult = (1); //strResult == bcd

strResult = (0, 2); //strResult == ab

strResult = (2); //strResult == cd

四、其他类型与CString类型的转换,CString str;

1、格式化字符串Format:实现从int、long等数值类型、TCHAR、TCHAR*等类型向CString

类型转换(注:TCHAR、TCHAR*等类型向CString类型转换,可以直接赋值)

-- CString -> int:_ttoi()

-- CString -> TCHAR* :

1)TCHAR* T = fer(); eBuffer();

2)TCHAR* T = (LPTSTR)(LPCTSTR)str;

五、CString对象的Ansi与Unicode转换

1、当前工程环境Unicode(窄字节(Ansi)向宽字节(Unicode)转换)

CString str;

str = "abc";

char* p = "defg";

str = p;

2、当前工程环境非Unicode(宽字节向窄字节转换)

CString str;

str = L"abc";

wchar_t* p = L"defg";

str = p;

六、CString对象包含字符串所占用的字节数

CString str;

int n = gth() * sizeof(TCHAR);

**错误的求法:sizeof(CString)、sizeof(str),这是求指针长度,总是为4