關於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;
```;
可根據自己的需要,選擇合適的方法。