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()不会做范围检查,如果超出范围的话,超出上界,则输出上界,超出下界,则输出下界;

posted @ 2022-04-13 22:29  博客大王a  阅读(187)  评论(1编辑  收藏  举报