一、sprintf() 用于将数字转化为字符串
sprintf函数
#include <iostream>
#include <string.h>
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;
cout<<str<<endl;
}
`#include <iostream>
#include <string.h>
using namespace std;
int main()
{
char str1[10];
double b=123456.987654321;
// 将浮点数转化为字符串
sprintf(str1,"%.3f",b);
int len1=strlen(str1);
cout<<"字符串为"<<str1<<endl;
cout<<"长度"<<len1<<endl;
return 0;
}`
二.利用stringstream
字符串格式化 ss <<
过程:数字 -> stringstream对象 -> string
创建一个stringstream 对象,并通过运算符 ”<<“ 将数据传递给 stringstream 对象
再调用stringstream 类的函数str() 将对象所包含的内容赋给一个string对象
#include <iostream>
#include <string.h>
#include<sstream>
using namespace std;
int main()
{
double d=123.321;
string s;
stringstream ss;
ss<<d;
ss>>s;
cout<<s<<endl;
int i=12;
ss.clear();
ss<<i;
ss>>s;
cout<<s<<endl;
return 0;
}
#include <iostream>
#include <string.h>
#include<sstream>
using namespace std;
int main()
{
double d=123.321;
string s;
stringstream ss;//使用 std::stringstream,小心 内存! 适时 清空 缓冲 ……
//显示2位小数
ss.precision(2);
ss<<"d="<<d;//"d="会加入头
ss>>s;
cout<<s<<endl;
ss.clear();//清除 state flag
ss.str(" ");//清除流的内容
//按十六进制显示整数
ss.precision(6);
ss.unsetf(ios_base::dec);
ss.setf(ios::hex);
ss<<"d1="<<d;
string str=ss.str();
cout<<str<<endl;
ss.clear();//清除 state flag
ss.str(" ");//清除流的内容
int i=12;
ss<<"i="<<i;
ss>>s;
cout<<s<<endl;
return 0;
}