atoi 是 C 语言标准库 stdlib.h 里面的函数,作用是把字符串形式的整数,转换成 int 整型数值,它接收一个 char 类型字符串指针作为入参,返回转换完成的 int 整数,函数会自动跳过字符串开头的空白字符,识别正负号,然后依次读取连续数字字符,遇到非数字字符就停止转换,非常适合处理命令行参数,文本里提取数字这类场景,使用 atoi 函数之前,必须引入头文件 stdlib.h,否则编译器会报隐式声明相关提示,理解 atoi 函数怎么用,要掌握函数原型,转换规则,返回值特点,边界情况,还有基础代码写法,是 C 语言入门非常常用的字符串转数字工具函数。
函数基础信息表
表格
| 项目 | 详细说明 |
|---|---|
| 函数名称 | atoi |
| 所属头文件 | stdlib.h |
| 函数原型 | int atoi(const char str) |
| 参数 | const char str 待转换的字符串 |
| 返回值 | 转换得到的 int 类型整数 |
| 停止规则 | 遇到非数字字符立即停止解析 |
核心转换规则
1 自动跳过字符串最前面的空格 制表符这类空白字符
2 支持识别开头的正号或者负号,也就是 + 和 -
3 从正负号之后开始读取连续数字字符
4 一旦碰到字母 小数点 其他符号,解析直接终止
5 如果字符串第一个有效字符不是数字或者正负号,函数返回 0
6 如果转换后的数值超出 int 范围,属于未定义行为,atoi 本身不会报错
基础代码示例
include
include
int main()
{
char s1[] = "12345";
char s2[] = "-789";
char s3[] = " 66abc";
int a = atoi(s1);
int b = atoi(s2);
int c = atoi(s3);
printf("%d %d %d",a,b,c);
return 0;
}
运行输出结果是 12345 -789 66,第三个字符串读到数字 66 之后遇到字母 a,停止转换,只取出前面数字部分。
使用操作步骤
第一步,新建 C 语言源文件,在代码顶部引入 stdio.h 和 stdlib.h 头文件
第二步,定义字符数组或者字符指针,保存需要转换的数字字符串
第三步,定义 int 变量,调用 atoi,把字符串传入函数,接收返回的整型结果
第四步,使用 printf 打印或者参与运算,验证转换后的整型数值
第五步,根据业务场景,提前判断字符串内容,留意溢出和无效输入情况
atoi 函数优点是调用简单,一行代码就可以完成字符串转 int,缺点是没有错误检测机制,溢出不会提示,对严格要求错误处理的项目,可以搭配 strtol 函数替代 atoi,日常简单练习和基础业务,atoi 函数是非常便捷的选择。
【相关 FAQ】
问题 1:atoi 函数怎么用,使用 atoi 需要包含什么头文件
回答 1:atoi 函数怎么用,atoi 属于 stdlib 标准库函数,使用 atoi 必须引入头文件 stdlib.h。
问题 2:atoi 函数怎么用,字符串里面带小数点 atoi 会怎么处理
回答 2:atoi 函数怎么用,atoi 函数读到小数点就停止解析,只会把小数点前面的数字转为整数,不会识别小数部分。
问题 3:atoi 函数怎么用,如果字符串开头不是数字 atoi 返回什么
回答 3:atoi 函数怎么用,如果字符串开头没有有效数字和正负号,atoi 函数直接返回数值 0。
问题 4:atoi 函数怎么用,atoi 可以处理 long 长整型吗
回答 4:atoi 函数怎么用,atoi 返回值固定是 int 类型,不能直接处理 long 长整数,长整型转换推荐使用 strtol 函数。
【免责申明】
本文内容仅作为 C 语言编程学习参考,不同编译器对未定义行为表现会有差异,正式项目开发请结合编译环境规范处理输入校验。


