一、CString和多种数据之间的转换比较
在MFC工程中,通常通过控件取得的值都是CString类型。后期要和其他类型的值比较的话转换比较复杂,我们最好将其他类型的值转为CString,再将其比较最好。
(1)int、float和double这些数字类型转换为CString字符串
%c 单个字符
%d 十进制整数(int)
%ld 十进制整数(long)
%f 十进制浮点数(float)
%lf 十进制浮点数(double)
%o 八进制数
%s 字符串
%u 无符号十进制数
%x 十六进制数
1、int转换为CString:
CString str;
int number=15;
str.Format(_T("%d"),number); //str="15"
(2)char[]转为CString:
vs2010 默认编码是unicode ,char定义的字符数组为ASCII编码,用Format之后就会造成乱码,应该用CStringW关键字进行转换
char str[]="hello";
CString s=_T("");
s.Format("%s",CStringW(str));
参考:https://blog.csdn.net/u010306834/article/details/39495305?utm_source=blogxgwz7
二、CString、string、char *之间的转换
(1)CString比较灵活,是基于MFC常用的类型,安全性也最高,但可移植性最差
string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的
char*是从学习C语言开始就已经和我们形影不离的了,有许多API都是以char*作为参数输入的
(2)
<1> string/CString 相互转换
string 2 CString: CString.format("%s",string.c_str());
CString 2 string: string str(CString.GetBuffer(str.GetLength()));
<2> string/char * 相互转换
string 2 char* : char *p = string.c_str();
char* 2 string : string str(char*);
<3> CString 和 char *相互转换:
CString 2 char* : strcpy(char,CString,sizeof(char));
char* 2 CString : CString.format("%s",char*);
参考:https://www.cnblogs.com/bluestorm/p/3168720.html
三、CString字符串查找和截取
参考:https://blog.csdn.net/lhf19891003/article/details/23770597/
四、查找CString里面出现某个字符的次数
参考:https://blog.csdn.net/zhengyanan815/article/details/79297829?utm_source=blogxgwz1