CString

博客介绍了CString字符串对象与字符串数组的转换方法,倾向于使用复制而非指针转换。将字符串内容复制到CString对象无需考虑溢出,反之则需考虑。还提到CString类重载了很多运算符,且做函数参数有格式要求,建议用字符串数组代替。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CString字符串对象功能比较强大,而且全面。经常会用到CString对象和字符串数组之间的转换。网上介绍了很多使用指针进行转换的方法,都是针对同一块内存来操作的,而且很容易出错。我倾向于不使用指针,而使用复制的方法,即把CString对象的内容复制到字符串数组中,或者把字符串数组的内容复制到CString对象中。这样两个变量同时存在,想用那个用哪个,并且可以随时通过复制来保持一致。

一、字符串内容复制到CString对象

char a[5] = "8888";   
CString str1(a);//定义时直接初始化。
CString str1(a,2);//定义时直接初始化前几个字符。
CString str1 = a;//定义时直接使用=重载符赋值。    
str1.Format(a);//使用格式化函数,适用于已经有现成的CString对象,不用再重新建了。
str1 = a; //使用=重载符直接赋值,适用于已经有现成的CString对象,不用再重新建了。  

CString对象会根据字符串的长短自动分配内存空间,所以不用考虑溢出问题。

二、CString对象内容复制到字符串

char c[10] = {0};//这种定义空间必须大一些,防止溢出。
char *c = new char[str1.GetLength()+1];//这种方法是根据字符串的大小开辟的空间,不会溢出。
strcpy( c, str1.GetBuffer() );//复制

字符串数组就需要考虑溢出问题。

CString类重载了很多运算符,比如

CString str1,str2,str3;
str1 = str2+str3;//两个字符串连接和赋值运算符
str1 > str2;//比较运算符
str1 >= str2;
str1 == str2;
str1 != str2;

注意:CString对象做函数参数时,有很多格式要求,所以最好不要用CString对象做函数参数,而使用字符串数组。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值