1. 程式人生 > >C/C++字串與數字的相互轉化

C/C++字串與數字的相互轉化

  • 數字轉字串:
    用C++的stringstream:
#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;
}

上述方法雖然簡單,但是處理大量資料的轉換時速度慢。

  • 用C語言中的sprint, sscanf相對較快
char c[10];
int n;
sprintf(c,"%d",n);//將整數轉化成字串
string s=c;
char str[]="15.432";
int i;
float fp;
sscanf(str,"%d",i);//i=15,將字串轉整數
sscanf(str,"%f",fp);//fp=15.432,將字串轉小數
  • 一些新的資料庫atoi, atof, atol, atoll
char str[]="15.432";
int i;
double db;
db=atof(str.c_str());//db=15.432
i=atoi(str.c_str());//i=15