C 中CSTRING的用法详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CStringT
CString CStringA CStringW 操作的字符类型:TCHAR操作的字符类型:char操作的字符类型:wchar_t
关于TCHAR,char,wchar_t三种字符类型的区别,会在随后的文章中详细解释!下面是
一、CString类的几种基本操作:
1、长度:GetLength();
CString str(_T("abc"));
int len=str.GetLength();//len==3
2、是否为空(即不含字符):IsEmpty();
3、清空字符串:Empty();
CString str(_T("abc"));
BOOL mEmpty=str.IsEmpty();//mEmpty==FALSE
str.Empty();
mEmpty=str.IsEmpty();//mEmpty==TRUE
4、转换大小写:MakeUpper(),MakeLower();
5、转换顺序:MakeReverse();
二、字符串的查找
1、Find:从制定位置开始查找指定字符串,返回其位置(找不到返回-1)
CString str(_T("abcdefg"));
int idx=str.Find(_T("cde"),0);//idx的值为2;
2、ReverseFind:从字符串末尾开始查找指定的字符,返回其位置,找不到返回-1,虽然是从后向前查找,但是位置为从开始算起;
CString str(_T("abcdefg"));
int idx=str.ReverseFind('e');//idx的值为4;
3、FindOneOf:查找参数中给定字符串中的任意字符,返回第一次出现的位置
CString str(_T("abcabcd"));
int idx=str.FindOneOf(_T("cbd"));//idx的值为1;
三、字符串的提取
Left,Mid,Right:分别实现从CString对象的左、中、右进行字符串的提取操作CString str(_T("abcd"));
CString strResult=str.Left(2);//strResult==ab
strResult=str.Mid(1);//strResult==bcd
strResult=str.Mid(0,2);//strResult==ab
strResult=str.Right(2);//strResult==cd
四、其他类型与CString类型的转换,CString str;
1、格式化字符串Format:实现从int、long等数值类型、TCHAR、TCHAR*等类型向CString 类型转换(注:TCHAR、TCHAR*等类型向CString类型转换,可以直接赋值)
--CString->int:_ttoi()
--CString->TCHAR*:
1)TCHAR*T=str.GetBuffer();str.ReleaseBuffer();
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=str.GetLength()*sizeof(TCHAR);
**错误的求法:sizeof(CString)、sizeof(str),这是求指针长度,总是为4。