isdigit()和stoi()、atoi()函数的应用
一、isdigit()
isdigit(int c)用来判断一个字符是不是十进制数(0~9)
参数
其参数c是要检测的字符。它可以是一个有效的字符(被转换为 int 类型),也可以是 EOF(表示无效的字符)。
例如
string s="123”; isdigit(s[i]);
或者
char str="123"; isdigit(str[i]);
也就是说c是char类或者string类型的都可以。
返回值
回值为非零(真)表示c
是十进制数字,返回值为零(假)表示c
不是十进制数字。
二、stoi()、atoi()函数
相同点
1.都是c++的字符处理函数,把数字字符串转换成int输出
2.头文件都是#include<cstring>
不同点
1.atoi()的参数是 const char* ,因此对于一个字符串str我们必须调用 c_str()的方法把这个string转换成 const char*类型的,而stoi()的参数是const string*,不需要转化为 const char*;
应用atoi()时,在定义的时候可以定义一个char类型的数组,这样就不用了进行转换了。
若要使用c_str()
string s1; atoi(s1.c_str());
2.stoi()会做范围检查,默认范围是在int的范围内的,如果超出范围的话则会runtime error!
而atoi()不会做范围检查,如果超出范围的话,超出上界,则输出上界,超出下界,则输出下界;