1 利用stringstream
数字转字符串
- 头文件 #include
#include <string> #include <sstream> int main(){ double a = 123.456; string res; stringstream ss; // 定义流ss ss << a; // 将数字a转化成流ss ss >> res; // 将流ss转化成字符串 return 0; }
字符串转数字
#include <string> #include <sstream> int main(){ double a ; string res= "123.456"; stringstream ss; ss << res; ss >> a; return 0; } //此处包装了一个方法,将一位的数字转化成两位的字符串 // 比如说 : 0->"00" 3->''03" string transform(int num) { string res; stringstream ss; ss<<num; ss>>res; if(num<10) { res="0"+res; } return res; }
2.利用 sprintf()函数和sscanf()函数
sprintf() 用于将数字转化为字符串
#include <iostream> #include <string> using namespace std; int main() { char str[10]; int a=1234321; //将整数转化为字符串 sprintf(str,"%d",a); int len=strlen(str); cout<<"字符串"<<str<<endl; cout<<"长度"<<len<<endl; char str1[10]; double b=123.321; / /将浮点数转化为字符串 sprintf(str1,"%.3lf",b); int len1=strlen(str1); cout<<"字符串"<<str1<<endl; cout<<"长度"<<len1<<endl; return 0; }
sscanf() 用于将字符串转化为数字
#include <iostream> #include <string> using namespace std; int main() { char str[]="1234321"; int a; sscanf(str,"%d",&a); cout<<a<<endl; char str1[]="123.321"; double b; sscanf(str1,"%lf",&b); cout<<b<<endl; return 0; }
扩展:sprintf()和sscanf()详细用法
内容过多,请参考我整理的另一篇博客