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
原文地址:https://www.cnblogs.com/toto0473/p/2861018.html