c++数字和字符之间的转化

时间:2023-03-10 01:28:56
c++数字和字符之间的转化

关于C++中数与字符之间的转化


在c++中我们经常遇到需要把一个数变成字符,或者把字符变为一个数,c++中没有直接的转化函数,故我们需要自己去写函数去转化,这里我将介绍两种比较简单的方法:

法一:

  • sprintf()函数把一个数字如何变成一个字符串:
    float a=23.309774; char ss[8]; sprintf(ss,"%lf",a);
    使用这种方法直接将数字a变成了字符串ss,值得注意的是,这种是把数字转化为数组,可以通过ss[i]这种方式提取任何元素,ss数组的大小一般定为数字的位数。
    此处用到了部分c语言知识,可以参考下面知识:

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;;
可根据自己的需要,选择合适的方法。