c++ string转int, double,int,double转string

c++ string与常用数值变量互转

写了几个字符串与数值变量互相转换的几个函数,每次用到都要上网查一堆,耽误时间,写好放到这里备用。方法有很多,这里列出来测试过能用的,其他方法慢慢添加。以下函数自动判断int或者double。

测试环境:

  • 系统:win7或者win10
  • IDE:vs2015

本文包含的内容:

c++ string与常用数值变量互转

1. 头文件

2. int转string

3. double转string

4. string转int

5. string转double

6. 测试

7. 其他方法std::to_string


1. 头文件

请留意包含的头文件,以及命名空间。可以先加上如下代码,在使用本文的几个转换函数。

#include 
#include 

using namespace std;

2. int转string

void num2string(int num, string &str)
{
	stringstream ss;
	ss << num;
	str = ss.str();
}

3. double转string

void num2string(double num, string &str)
{
	stringstream ss;
	ss << num;
	str = ss.str();
}

4. string转int

void string2num(string str, int &num)
{
	stringstream ss;
	ss << str;
	ss >> num;
}

5. string转double

void string2num(string str, double &num)
{
	stringstream ss;
	ss << str;
	ss >> num;
}

6. 测试

// string2num_num2string.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include 
#include 
#include 

using namespace std;

void num2string(int num, string &str)
{
	stringstream ss;
	ss << num;
	str = ss.str();
}

void num2string(double num, string &str)
{
	stringstream ss;
	ss << num;
	str = ss.str();
}

void string2num(string str, int &num)
{
	stringstream ss;
	ss << str;
	ss >> num;
}

void string2num(string str, double &num)
{
	stringstream ss;
	ss << str;
	ss >> num;
}

int main()
{
	int    i = 10;
	double d = 10.5;

	// 数值转string
	string str_i;
	string str_d;
	num2string(i, str_i);
	num2string(d, str_d);
	cout << "str_i = " << str_i << endl;
	cout << "str_d = " << str_d << endl;

	// string转数值
	int x;
	double y;
	string2num(str_i, x);
	string2num(str_d, y);
	cout << "x = " << x << endl;
	cout << "y = " << y << endl;

	system("pause");
        return 0;
}

运行结果

7. 其他方法std::to_string

c++11标准增加了全局函数std::to_string用于将数值类型变量转换为string类型变量,也可直接使用。

string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val);


 

本文更新地址:https://blog.csdn.net/iracer/article/details/94435586

你可能感兴趣的:(C++)