CString类的介绍(宽字符形式介绍)
文章目录
- CString类的介绍(宽字符形式介绍)
-
- 1、CString类原型
- 2、常见构造函数的使用
- 3、AppendFormat函数
- 4、Compare和CompareNoCase函数
- 5、Delete函数
- 6、Find函数
- 7、FindOneOf函数
- 8、Format函数
- 9、GetEnvironmentVariable函数
- 10、Insert函数
- 11、Left、Right、Mid函数
- 12、MakeLower、MakeUpper、MakeReverse函数
- 13、Remove函数
- 14、Replace函数
- 15、SpanExcluding和SpanIncluding函数
- 16、Tokenize函数
- 17、Trim函数
- 18、TrimLeft和TrimRight
1、CString类原型
template< typename BaseType, class StringTraits >
class CStringT :
public CSimpleStringT< BaseType,
_CSTRING_IMPL_::_MFCDLLTraitsCheck< BaseType, StringTraits >::c_bIsMFCDLLTraits>
2、常见构造函数的使用
常用构造形式
CString( ) // 无参构造
CString( const CStringT& strSrc ) // 使用CString的引用作为参数构造
CString( const unsigned char* pszSrc ) // 使用const unsigned char *的指针变量构造
CString( char* pszSrc ) // 使用char *的指针变量构造
CString( unsigned char* pszSrc ) // 使用unsigned char *的指针变量构造
CString( wchar_t* pszSrc ) // 使用wchar_t *的指针变量构造(宽字符)
CString( char ch, int nLength = 1 ) // 使用char构造(窄字符)
CString( wchar_t ch, int nLength = 1 ) // 使用wchar_t构造(宽字符)
测试示例:
CString s1; // Empty string
CString s2(_T("cat")); // From a C string literal
CString s3 = s2; // Copy constructor
CString s4(s2 + _T(" ") + s3); // From a string expression
CString s5(_T('x')); // s5 = "x"
CString s6(_T('x'), 6); // s6 = "xxxxxx"
CString s7((LPCSTR)"help"); // char * to CString
CString s8('a', 5); // s8 = "aaaaa"
3、AppendFormat函数
(1)功能和调用方式类似C语言的sprintf+strcat函数
(2)函数原型
void __cdecl AppendFormat(
PCXSTR pszFormat,
[, argument]...
);
void __cdecl AppendFormat(
UINT nFormatID,
[, argument]...
);
参数:
pszFormat 需要格式化控制的字符串
nFormatID 包含格式控制字符串的字符串资源标识符(字符串表中的字符串ID号)
argument 可变参数列表
备注:
这个函数在CStringT中格式化并附加一系列字符和值。每个可选参数(如果有)都根据pszFormat中相应的格式规范或nFormatID标识的字符串资源进行转换和追加。
(3)调用示例
CAtlString str = _T("Some data:\t");
str.AppendFormat(_T("X value = %.2f\n"), 12345.12345);
4、Compare和CompareNoCase函数
(1)作用:比较两个CString对象是否相等(依赖于strcmp这一类的函数,比较规则依据ASCII码值大小,并且不受语言环境的影响)
(2)函数原型
// 区分大小写
int Compare(
PCXSTR psz
) const;
// 不区分大小写
int CompareNoCase(
PCXSTR psz
) const;
参数:
psz 需要比较的字符串,注意:源字符串是调用者
返回值:
相等返回0
小于0 则CString对象小于psz字符串
大于0 则CString对象大于psz字符串
Compare函数备注:
通用文本函数_tcscmp,它在TCHAR中定义。H,映射到strcmp、wcscmp或_mbscmp,具体取决于在编译时定义的字符集。每个函数对字符串执行区分大小写的比较,并且不受语言环境的影响。有关更多信息,请参见strcmp、wcscmp、_mbscmp。如果字符串包含内嵌的空值,为了进行比较,将认为在第一个内嵌的空字符处截断该字符串。
CompareNoCase函数备注:
通用文本函数_tcscmp,它在TCHAR中定义。H,映射到strcmp、wcscmp或_mbscmp,具体取决于在编译时定义的字符集。每个函数对字符串执行不区分大小写的比较,并且不受语言环境的影响。有关更多信息,请参见strcmp、wcscmp、_mbscmp。如果字符串包含内嵌的空值,为了进行比较,将认为在第一个内嵌的空字符处截断该字符串。
(3)调用示例
CString str1 = _T("Hello");
CString str2 = _T("hello");
int nRes = str1.Compare(str2);
if (!nRes)
AfxMessageBox(