首页 > 编程笔记

C语言atoi():将字符串转换为整数

atoi() 是 C语言的一个标准库函数,定义在<stdlib.h>头文件中。

atoi() 函数用于将字符串转换为整数。

具体来讲,atoi() 函数首先会丢弃尽可能多的空白字符,直至找到第一个非空白字符,然后从该字符开始,识别 "+"、"-" 以及 0-9 之间的十进制数,最后将它们转换成整数。如果构成整数的后面还有其它字符,这些字符将会被忽略。

atoi() 函数的原型如下:
int atoi(const char *str);

参数

str:指向要转换的字符串。

返回值

如果转换成功,函数返回转换后的整数。

如果由于 str 为空或者 str 字符串无法转换为整数,函数返回 0。

如果字符串表示的值超出了 int 类型所能表示的整数范围,函数返回的数值是无意义的(垃圾值)。

【实例】以下的 C语言代码演示了 atoi() 函数的功能和用法。
#include <stdio.h>
#include <stdlib.h>

int main() {
    const char *str1 = "123";
    const char *str2 = "   -123abc12"; // 有效字符是 -123
    const char *str3 = "abc"; // 无效的整数表示

    int value1 = atoi(str1);
    int value2 = atoi(str2);
    int value3 = atoi(str3); // 未定义的结果,通常为0

    printf("Value of str1: %d\n", value1);
    printf("Value of str2: %d\n", value2);
    printf("Value of str3: %d\n", value3); // 可能打印0

    return 0;
}
上述代码将转换三个字符串,前两个包含有效的整数表示,最后一个包含无效表示。通常的结果为:

Value of str1: 123
Value of str2: -123
Value of str3: 0

推荐阅读