MFC中CString类常用函数介绍

CString类的介绍(宽字符形式介绍)

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(
  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值