C++中常用类型的转换总结
1,string转char *
string str="hello"
char *array=(char*)str.c_str();
2, char * 转 unsigned char *
在符号不影响的情况下,可以通过强制转换来完成
unsigned char *un_array=(unsigned char *)array
3, char * 转string
char *array=(char *)"hello";
string str;
str.assign(array,length) //length为从char数组的第0位开始,一直到length-1位置的所有字符转换为string
str.assign(array) //array所指向数组的以空字符结束的字符串副本替换S
//或者在声明阶段直接进行初始化
string str(array);
string str(array, length) //以0下标开始的length长字符进行初始化
string str(array, start, len) //以start下标开始的len长的字符进行初始化
4, int, unsigned int, long, unsigned long转string
利用stringstream这个流,需要引入#include <sstream>
string str;
stringstream ss;
int a=10; //这里同样适用于 unsigned long, long, unsigned int
ss<<a;
ss>>str; //这时str的值就为“10”
5,long转换为string的一个解决方案:
可以先用sprintf函数把long转换为char*,然后char*直接可以赋给string。 6, string转换为long的一个解决方案 先用string的成员函数c_str()转化为char*,再用sscanf函数将char*转为long。 sscanf和sprintf是C函数,头文件stdio.h,用法和scanf、printf相似
欢迎来我的新浪博客做客:
http://blog.sina.com.cn/toto0473