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

24 篇文章 0 订阅

来自:http://hi.baidu.com/sunkanghome/blog/item/96c0312557f3c76435a80f62.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(常用)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值