在做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* 类型。