关于C++中数与字符之间的转化
在c++中我们经常遇到需要把一个数变成字符,或者把字符变为一个数,c++中没有直接的转化函数,故我们需要自己去写函数去转化,这里我将介绍两种比较简单的方法:
法一:
- sprintf()函数把一个数字如何变成一个字符串:
float a=23.309774;
char ss[8];
sprintf(ss,"%lf",a);
使用这种方法直接将数字a变成了字符串ss,值得注意的是,这种是把数字转化为数组,可以通过ss[i]这种方式提取任何元素,ss数组的大小一般定为数字的位数。
此处用到了部分c语言知识,可以参考下面知识:
如果是int型,则应变化相应的部分。
- sscanf()函数把一个字符变为一个数字:
char str[]="12233";
int a;
sscanf(str,"%d",&a);
cout<<a<<endl;
cout<<a+22<<endl;
法二:
利用stringstream流来完成。
使用前必须添加#include "sstream"
*将数字转化为字符:
int a=222;
string s;
stringstream res;
res<<a;
res>>s;
cout<<s<<endl;
cout<<s+"anbb";
*将字符数字转化为double型数字:
float a;
string s="1234.4";
stringstream res;
res<<s;
res>>a;
cout<<a<<endl;
cout<<a+2.3;
```;
可根据自己的需要,选择合适的方法。