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型转化为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相互转换
定义字符指针变量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;