CString操作指南,第1张

CString操作指南,第2张

CString是一种非常有用的数据类型。它们大大简化了MFC中的许多操作,并使MFC进行字符串操作更加方便。反正使用CString有很多特殊的技巧,尤其是纯C背景出来的程序员,学起来有点难。本文将讨论这些技巧。

使用CString可以使您对字符串的操作更加简单。本文并不是CString的完整手册,但它涵盖了最常见的基本问题。

下面我会分别讨论。

1.CString对象的连接

反映CString类型便利性的一个方面是字符串连接。使用CString类型,可以方便地连接两个字符串,如下例所示:

CString gray(“灰色”);
CString Cat(" Cat ");
CString gray cat = gray+cat;

这比使用以下方法要好得多:

char Gray[]= " Gray ";
char Cat[]= " Cat ";
char * gray cat = malloc(strlen(gray)+strlen(cat)+1);
strcpy(graycat,gray);
strcat(graycat,cat);

2.格式字符串

与其使用sprintf()函数或wsprintf()函数来格式化字符串,不如使用CString对象的Format()方法:

CString s;
s.Format(_T("合计为%d "),合计);

这种方法的优点是,您不必担心用于存储格式化数据的缓冲区是否足够大。CString类将为您完成这项工作。

格式化是将非字符串类型的其他数据转换为CString类型的最常用技术。例如,以下方法可用于将整数转换为CString类型:

CString s;
s.Format(_T("%d "),total);

我总是对字符串使用_T()宏,这是为了使我的代码至少支持Unicode。当然,关于Unicode的话题超出了本文的范围。_T()宏在8位字符环境中定义如下:

#define _T(x) x //非Unicode版本(非Unicode版本)

在Unicode环境中,它的定义如下:

#define _T(x) L##x // Unicode版本(Unicode版本)

所以在Unicode环境中,它的作用相当于:

南格式(L"%d ",总计);

如果你认为你的程序可以在Unicode环境下运行,那么就开始关心Unicode编码。例如,不要使用sizeof()运算符来获取字符串的长度,因为在Unicode环境下会有两倍的误差。我们可以用一些方法隐藏Unicode的一些细节。举个例子,当我需要得到字符长度的时候,我会使用一个叫做DIM的宏,这个宏是在我的dim.h文件中定义的,我会把这个文件包含在我写的所有程序中。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » CString操作指南

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情