本片文章主要记录以下内容:
1 算术类型转化为相应的string表示形式
2 数值型数据的字符表示形式转化为相应的算术值
3 算术类型转化为相应的CString表示形式
4 string类型与char*的相互转换
5 string类型与CString类型的相互转换
6 char*与CString数据类型的相互转换
具体如下:
1算术类型转化为相应的string表示形式
1)方法1
float in2=12.3;
stringstream sstr1;//用ostringstream也是可以的
sstr1<<"转换的数字是:"<<in2<<endl;//将算术类型转换为相应的string表示形式
string str=sstr1.str()//获得流的string表示形式
cout<<str<<endl;
2)方法2
sprintf函数
3)方法3
itoa等函数
2 数值型数据的字符表示形式转化为相应的算术值
1)方法1
string str1="123";
stringstream sstr(str1); //用istringstream
int in1;
sstr>>in1;//读取istringstream对象自动地将数值型数据的字符表示形式转换为相应的算术值
cout<<in1<<endl;
2
)方法2
atoi,atol,atof等
3 算术类型转化为相应的CString表示形式
1) 方法1
int i=123;
CString str;
str.format("%d",i);//int->CString 其他的基本类型转化类似
4 string类型与char*的相互转换
a)char*转化为string类型
string s1(p1);
//cout<<"s1的值是:"<<s1<<endl;*/
b)string类型转化为char*(要注意的是char*最后一个字符是\0)
string s2("hello");
1)方法1
char* p1=(char*)s2.data();//方法一,需要收到将const char*转换为char*
2)方法2
char* p2=(char*)s2.c_str();
3)方法3
int len_s=s2.length();
char p[5];
s2.copy(p,len_s,0);
*(p+len_s)='\0';
cout<<p1<<endl<<p2<<endl<<p<<endl;
cout<<"p2的值是:"<<p2<<endl;
5 string类型与CString类型的相互转换
a)string转换为CString
1)方法1
CString cs2;
cs2.Format("%s",s2.c_str());
cout<<"cs2的值是:"<<cs2<<endl;
b) CString转换成string类型
1)方法1
CString cstring1("cstring1");
string s=cstring1.GetBuffer(cstring1.GetLength()));
6 char*与CString数据类型的相互转换
a)char* 转化成CString
1)方法1
char* p1="p1";
CString cs1(p1);
cout<<"cs1的值是:"<<cs1<<endl;
2)方法2
CString cs2;
cs2.Format("%s",p1);?/此处设置如下:项目->属性->配置属性->常规->字符集(改为多字符集)
cout<<"cs2的值是:"<<cs2<<endl;
b)CString转化成char*
1)方法1
char* p=cstring1.GetBuffer(cstring1.GetLength());
cout<<s<<endl<<p<<endl;
附:
1)c_str()使用说明
2)fgets()的使用方式http://baike.baidu.com/link?url=GCD9K1_PLJu_cvK1wv8jT0TVCHp81Ou6RQkLStRZQT2oe8mvkI_tVgKksUhAwZ5d
3) LPTSTR、LPCSTR、LPCTSTR、LPSTR的意义
http://blog.csdn.net/douzixinxin/article/details/869937
Reference:
1)http://blog.sina.com.cn/s/blog_486285690100lhmf.html
2)http://blog.csdn.net/candadition/article/details/7342380