C++ stoi(),atoi() ,to_string()
stoi(),atoi() ,to_string 这三个函数都是对字符串处理的函数,前两者是将字符串转化为十进制 int 类型,最后一个是将十进制类型 int、double 等转化为string。
头文件
C++11
#include<cstring>
stoi() 和 atoi()函数说明
-
stoi 的参数是
const string*
类型
atoi 的参数是const char*
类型 -
stoi()
会对转化后的数进行检查,判断是否会超出 int 范围,如果超出范围就会报错;
atoi()
不会对转化后的数进行检查,超出上界,输出上界,超出下界,输出下界; -
如果使用
atoi
对字符串string
进行转化的话,就需要 c_str() 函数将const string*
类型 转化为const char*
类型
c_str() 函数可以将 const string* 类型 转化为 const char* 类型
因为在c语言中没有string类型,必须通过string类对象的成员函数 c_str() 把 string 转换成c中的字符串样式
举例
#include<iostream>
#include<cstring>
using namespace std;
int main() {
string s = "12345";
int num1 = stoi(s);
int num2 = atoi(s.c_str());// 转化为const char*
cout << num1 << endl << num2 << endl;
return 0;
}
输出都是 12345
to_string()函数说明
- 将数字常量(int,double,long等)转换为字符串(string),返回转换好的字符串
#include<iostream>
#include<cstring>
using namespace std;
int main() {
int num = 123456789;
string s = to_string(num);
cout << s << endl;
return 0;
}
输出是字符串 123456789