Bootstrap

C++中string和int,long,double等类型的转换函数

在做cg作业的时候遇到了很多字符串和整形数的转换,每次都查转换函数有点麻烦而且总是忘记,所以在这里整理一下常用函数。 

一、int 转换为 string

(1)使用to_string()函数
格式:string str = to_string(val);

需引入头文件:#include<cstring>

整理:

string str=to_string (int val);

string str=to_string (long val);

string str=to_string (long long val);

string str=to_string (unsigned val);

string str=to_string (unsigned long val);

string str=to_string (unsigned long long val);

string str=to_string (float val);

string str=to_string (double val);

string str=to_string (long double val);

二、string 转换为 int

(1)使用stoi()函数  (stoi == string to int)
格式:int val=stoi(str); 

 需引入头文件:#include<cstring>

整理:

int val=stoi(string str);                                           //字符串转为int型

long int val=stol(string str);                                   //字符串转为long int型

unsigned int val=stoul(string str);                         //字符串转为unsigned int型

long long val=stoll(string str);                               //字符串转为long long型

unsigned long long=stoull(string str);                   //字符串转为unsigned long long型

float val=stof(string str);                                       //字符串转为float型

double val=stod(string str);                                  //字符串转为double型

long double val=stold(string str);                         //字符串转为long double型

(2)使用atoi()函数   

stoi() 和 atoi()都是将字符串转化为 int 类型,但是它们作用的对象类型不同,
stoi 的参数是 const string* 类型,而atoi 的参数是 const char* 类型

stoi() 会对转化后的数进行检查,判断是否会超出 int 范围,如果超出范围就会报错(抛出out_of_range异常);
atoi() 不会对转化后的数进行检查,超出上界,输出上界,超出下界,输出下界;

如果一定要使用 atoi 对字符串 string 进行转化的话,就需要 c_str() 函数将 const string* 类型 转化为 cons char* 类型。

 

;