Cpp字符串转数字总结
Contents
c语言转换形式
string str;
int i = atoi(str.c_str());//string转int
float f = atof(str.c_str());//string转float
long l = atol(str.c_str());//string转long
long long ll = atoll(str.c_str());//string转long long
cpp语言转换形式
string str;
int i = stoi(str);//string转int
float f = stof(str);//string转float
long l = stol(str);//string转long
long long ll = stoll(str);//string转long long
double d = stod(str);//string转double
long double ld = stold(str);//string转long double
unsigned long ul = stoul(str);//string转unsigned long
unsigned long long ull = stoull(str);//string转unsigned long long
- 相同点:
- 功能一样
- 不同点:
- 前者头文件是#include<stdlib.h> ;后者是#include<string>
- atoi()的参数是 const char* ,因此对于一个字符串str我们必须调用 c_str()的方法把这个string转换成 const char* 类型的;而stoi()的参数是const string*,不需要转化为 const char*;
- stoi()会做范围检查,如果超出范围的话则会runtime error!;而atoi()不会做范围检查,如果超出范围的话,超出上界,则输出上界,超出下界,则输出下界
参考:(https://blog.csdn.net/yky__xukai/article/details/79554963)
Author ChrisHRZ
LastMod 2020-05-07