C++各种转化集结号

来源:互联网 发布:视频直播源码 编辑:程序博客网 时间:2024/05/01 23:34

是时候整理一波各个转化关系了:string->数值->string,进制转化,...

string->数值->string

1.用C++的streanstream

 #include <sstream>  #Include <string>  string num2str(double i)  {  stringstream ss;  ss << i;  return ss.str();  }//  字符串转数字:  int str2num(string s){  int num;  stringstream ss(s);  ss>>num;  return num;    }//上面方法很简便, 缺点是处理大量数据转换速度较慢..


2.C library中的sprintf, sscanf 

/*已知从0点开始的秒数(seconds) ,计算出字符串"H:M:S",  其中H是小时, M=分钟,S=秒*/      int H, M, S;  string time_str;  H=seconds/3600;  M=(seconds%3600)/60;  S=(seconds%3600)%60;  char ctime[10];  sprintf(ctime, "%d:%d:%d", H, M, S);  // 将整数转换成字符串  time_str=ctime;          // 结果与sprintf对应的是 sscanf 函数, 可以将字符串转换成数字.  char    str[] = "15.455";  int     i;  float     fp;  sscanf( str, "%d", &i );         // 将字符串转换成整数   i = 15  sscanf( str, "%f", &fp );      // 将字符串转换成浮点数 fp = 15.455000  //打印  printf( "Integer: = %d ",  i+1 );  printf( "Real: = %f ",  fp+1 );  return 0;  //输出如下:  //Integer: = 16  //Real: = 16.455000

3.C标准库了提供了 atoi, atof, atol, atoll(C++11标准) 函数将字符串转换成int,double, long, long  long 型。to_string函数将数值转为字符串。

<strong>    </strong>char    str[] = "15.455";  double     db;  int     i;  db = atof(str);   // db = 15.455  i = atoi(str);    // i = 15  //若字符串为string类型,则要用c_str()方法获取其字符串指针,如下:  string    str = "15.455";  double     db;  int     i;  db = atof(str.c_str());   // db = 15.455  i = atoi(str.c_str());    // i = 15

string to_string (int val);string to_string (long val);string to_string (long long val);string to_string (unsigned val);string to_string (unsigned long val);string to_string (unsigned long long val);string to_string (float val);string to_string (double val);string to_string (long double val);

先将string和数值的转化写上,之后慢慢添加其他转化。

1 0
原创粉丝点击