string PK CString


string 属于标准C++模版STL的一个字符串类实例,CString是微软提供的一个字符串类

第一局:返回数组指针
/
string str;
str.c_str();//string只需调用c_str()
/
CString str;
str.GetBuffer(0);//调用GetBuffer(0)
str.ReleaseBuffer();//用后必须调用ReleaseBuffer(),否则下次返回指针可能无效

 CString str;
 char  *p=(LPSTR)(LPCSTR)str;//
///最简洁的转换07-11-2
 const  char *p=(LPCSTR)str;/////最简洁的转换07-11-6

结论:string简洁的代码胜出
第二局:格式化数字类型数据比较
//
CString str;
str.Format("%d",100);
///
string有三种方法,
法一:stringstream
stringstream sstr;//#include 
string str;
sstr<< 100;
sstr>> str;
法二:wsprintf
int i = 100;
char buf[5];
wsprintf(buf,"%d",i);
string str=buf;
法三:_itoa或itoa
char buf[4];
int n = 100;   
_itoaibuf, 10 );
string str=buf;
//
结论:CString简洁的代码胜出

第三局:返回数组指针
//
string str;
str.resize(5);
strcpy(str.data,"abcd");
//
CString str;
strcpy(str.GetBuffer(5),"abcd");
/
结论:CString简洁的代码胜出

第四局:支持memset函数
struct{ int n;string str;}a;
memset(a,0,sizeof(a));
a.str="abc";//没有出现异常
///
struct{ int n;CString str;}a;
memset(a,0,sizeof(a));//没有出现异常
a.str="abc";//程序崩溃
本人实践认为,两者可谓平分秋色,旗鼓相当,不同时刻选择最优者使用,能够明显减少代码量,况且两者转换的方法很简单.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值