CString基本使用以及 和Char*之间的转化

CString 的简单使用

1.CString 对象的连接

CString 对象的连接是通过该类的“+”成员操作符进行的。“+”成员操作符也称为连接操作符,可以把两个字符串连接起来,并返回一个CString的对象。但需要注意的是:两个参数字符串至少有一个是CString对象,另外一个可以是字符或者字符指针。

例如:

CString gray("Gray");

CString gray("Gray");

Cstring grayCat= gray + cat;

2.格式化字符串

sprintf 常用于讲格式化的数据写入C风格的字符数组中,而CString提供了类似功能的成员函数Format。次函数将一些列字符和值格式化并并存储到CString中。当将一个字符串作为可选的参数传递时,必须将它显式地映射为LPCSTR类型,其格式与printf函数具有相同的形式和功能。。

例如:

Int iCount;

Cstring str;

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

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

Int iCount;

Cstring str;

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

3.CString型转化为intlong

有时候需要将字符串类型值转化为intlong型,可以使用_ttoi_ttol等函数。例如:

str1="  -98  dogs";

i=_ttoi(str1);

str2="885 dollars";

l= _ttol(str2);

转化后

i=-98;

l=885;

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

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

char* pChar ="Test only";

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

CString  str= "Testonly";

CString  str=("Test  only");

CString  str=pChar;

CString  str=(pChar);

CString对象到char*转化的三种方法

a.使用强制类型转换的方法将CString对象转化为LPCTSTR类型。

CString类重载了LPCTSTR操作符,使用该操作符可以得到CString对象缓冲区的地址。因此,如果需要一个指向CString的字符串指针,可以如下操作:

CString str("Test only");

LPCTSTR pChar= str;

b.使用CString对象的GetBuffer成员函数。

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

CString str("Test only");

LPTSTR pChar = str.GetBuffer(10);

// Directly access the buffer of CString object

strcpy(pChar,"Hello");

str.ReleaseBuffer();

c.使用强制类型转化的方法将CString对象转化为LPTSTR类型。

首先把CString强制类型转化为LPCTSTR,以获取CString对象中字符串的地址,然后再强调类型转化成LPTSTR,以便可以对其进行赋值操作。

CString str("Test only");

LPTSTR pChar =(LPTSTR)(LPCTSTR)str;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值