C/C++字符串与数字的相互转化

  • 数字转字符串:
    用C++的stringstream:
#include 
#include 
  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

你可能感兴趣的:(常用的)