C++中int、double、float。string等常见类型转换
2015-11-02 08:59
633 查看
1、各种类型之间的相互转换的互相转换
int型转string
void int2str(const int &int_temp,string &string_temp)
{
stringstream stream;
stream<<int_temp;
string_temp=stream.str(); //此处也可以用 stream>>string_temp
}double 型转string
void double2str(double &double_temp,string &string_temp)
{
stringstream stream;
stream<<double_temp;
string_temp=stream.str();
}string 型转 double
void str2double(double &double_temp,string &string_temp)
{
stringstream stream;
stream<<string_temp;
stream>>double_temp;
}
string型转int型
void str2int(int &int_temp,const string &string_temp)
{
stringstream stream(string_temp);
stream>>int_temp;
} 只需要一个函数既可以搞定,atoi()函数主要是为了和C语言兼容而设计的,函数中将string类型转换为C语言的char数组类型作为atoi函数的实参,转化后是int型。
float型与string型的转换
建议同样适用流的方法,只要把前面函数中int改为float就可以了。此外还有gcvt函数可以实现浮点数到字符串的转换,atof()函数则实现把字符串转换为浮点数。使用方法如下:
float num;
string str="123.456";
num=atof(str.c_str());
double num=123.456;
string str;
char ctr[10];
gcvt(num,6,ctr);
str=ctr;
其中num默认为double类型,如果用float会产生截断。6指的是保留的有效位数。ctr作为第三个参数默认为char数组来存储转换后的数字。该函数在VS下编译时同样会提示该函数不提倡使用。最后一行将ctr直接转换为str。
int型转string
void int2str(const int &int_temp,string &string_temp)
{
stringstream stream;
stream<<int_temp;
string_temp=stream.str(); //此处也可以用 stream>>string_temp
}double 型转string
void double2str(double &double_temp,string &string_temp)
{
stringstream stream;
stream<<double_temp;
string_temp=stream.str();
}string 型转 double
void str2double(double &double_temp,string &string_temp)
{
stringstream stream;
stream<<string_temp;
stream>>double_temp;
}
string型转int型
void str2int(int &int_temp,const string &string_temp)
{
stringstream stream(string_temp);
stream>>int_temp;
} 只需要一个函数既可以搞定,atoi()函数主要是为了和C语言兼容而设计的,函数中将string类型转换为C语言的char数组类型作为atoi函数的实参,转化后是int型。
float型与string型的转换
建议同样适用流的方法,只要把前面函数中int改为float就可以了。此外还有gcvt函数可以实现浮点数到字符串的转换,atof()函数则实现把字符串转换为浮点数。使用方法如下:
float num;
string str="123.456";
num=atof(str.c_str());
double num=123.456;
string str;
char ctr[10];
gcvt(num,6,ctr);
str=ctr;
其中num默认为double类型,如果用float会产生截断。6指的是保留的有效位数。ctr作为第三个参数默认为char数组来存储转换后的数字。该函数在VS下编译时同样会提示该函数不提倡使用。最后一行将ctr直接转换为str。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性
- C++ Custom Control控件向父窗体发送对应的消息