数字,字符串和string的相互转化

数字转字符串:

  itoa(int1, char*, int2); //将int1以int2进制存储在char*数组里

  ltoa(long, char*, int); //将long以int进制存储在char*数组里

  ultoa(unsigned long, char*, int); //将unsigned long以int进制存储在char*数组里

  gcvt(float, int, char*);

  //将float保留int位有效数字存储在char*数组里,四舍五入,科学计数法,注意如果是3,两位及以上有效数字会转化成3.,多一个小数点

  char*=ecvt(double, int, int*1, int*2);

  //将double的整数部分和int位小数去掉小数点存储在返回值char*里,返回的int*1是小数点位置,返回的int*2是0表示正数,1表示负数

  //超出int位的部分不补零

  char*=fcvt(double, int, int*1, int*2);

  //将double的整数部分和int位小数去掉小数点存储在返回值char*里,返回的int*1是小数点位置,返回的int*2是0表示正数,1表示负数

  //超出int位的部分补零

数字转string:

  int x=3;

  string str=to_string(x); //若改成float或者double结果会自动保留6位小数,但只要是整数都没问题,所以时间允许的话更推荐下面这种方法

  double d=3.5;

  stringstream ss;

  ss<<d;

  string s=ss.str();

  ss.clear(); //clear才能使答案正确

  ss.str(“”); //重新赋值优化空间

字符串转数字:

  int=atoi(char*); //把char*转化为int

  long=atol(char*); //把char*转化为long

  double=atof(char*); //将char*转化为double

字符串转string:

  string str;

  str.assign(char*, int); //从char*开始的int个字符赋值给str,若省略int这个参数,则默认赋值到最后

string转数字:

  int x;

  stringstream ss;

  string str;

  ss.str(str);

  ss>>x;

string转字符串:

  string str;

  char*=str.c_str();

   

原文地址:https://www.cnblogs.com/St-Lovaer/p/11398993.html