您的位置:首页 > 其它

MFC简单数据类型类及其转换

2012-05-13 12:41 281 查看
转自:http://hi.baidu.com/sunkanghome/blog/item/4c1785f509710221bc3109b7.html
简单数据类型类

CString对象由一个可变长的字符序列组成,它提供了一些简单的函数和操作符成员(如连接和比较操作符等)。

1、CString对象的连接

CString对象的连接是通过该类的“+”成员操作符进行的,它可以将两个字符串合并起来,并返回一个CString对象。需要注意的是两个参数字符串中至少有一个必须是CString对象,另外一个可以是字符或字符指针。

CString gray("Gray");

CString cat("Cat");

CString graycat=gray+cat;

2、格式化字符串

CString类的成员函数Format可以将一系列字符和值格式化并存储到CString中。当将一个字符串作为可选的参数传递时,必须将它显式的映射为LPCTSTR。

int iCount;

CString str;

str.Format("The total count is %d",iCount);

格式化字符串也是将其他类型的数据转化为CString类型的常用技巧。例如,将整型值转化为字符串形式:

int iCount;

CString str;

str.Format("%d",iCount);

3、CString型转化为int、long型

有时需要将字符串类型转化为int型或long型,可以使用_ttoi或_ttol等函数。

str1="-98 dogs";

i=_ttoi(str1);

str2="885 dollars";

l=_ttol(str2);

转换后如下:

i==-98;

l=885;

4、字符指针(char*)和CString相互转换



从一个字符指针型数据或字符串创建CString对象。

定义字符型指针变量pChar并为其赋值如下:

char*pChar="test only";

可以使用如下方法中的一种,从字符指针型数据中创建CString对象:

CString str="test only";

CString str("test only");

CString str=pChar;

CString str(pChar);


从CString对象得到char*指针,介绍三种方法:

(1)使用强制类型转换的方法将CString对象转换为LPCTSTR类型。CString类重载了LPCTSTR操作符,使用该操作符可以得到CString对象缓冲区的地址。因此,如果需要一个指向CString的字符串指针,可以按照如下方式进行:

CString str("test only");

LPCTSTR pChar=str;

(2)使用CString对象的GetBuffer成员函数。如果需要修改CString的内容,可以使用成员函数GetBuffer,该成员函数返回一个LPTSTR类型的缓冲区地址,由于它不是const型,所以可以修改CString的内容。但需要注意的是,在使用CString对象其他的任何任何成员函数之前必须调用ReleaseBuffer成员函数。

CString str("test only");

LPTSTR pChar=str.GetBuffer(10);//直接访问CString缓冲区

strcpy(pChar,"Hello");

str.ReleaseBuffer;

(3)使用强制类型转换的方法将CString对象转换为LPTSTR 类型。首先把CString强制类型转换为LPCTSTR,以获得CString对象中字符串的地址,然后再强制类型转换为LPTSTR,以便对其进行赋值操作。

CString str("test only");

LPTSTR pChar=(LPTSTR)(LPCTSTR)str;



字符串指针


LPSTR-----------32位指针,指向一个字符串(CString)

LPCSTR---------32位指针,指向一个常数字符串

LPTSRE---------32位指针,指向一个字符串,此字符串可以移植到Unicode和DBCS(常用)

LPCTSTR-------32位指针,指向一个常数字符串,此字符串可以移植到Unicode和DBCS(常用)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: