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()不会做范围检查,如果超出范围的话,超出上界,则输出上界,超出下界,则输出下界;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了