C 语言 Atoi() 函数

2025年3月17日 | 阅读 3 分钟

在本文中,我们将通过示例讨论 C 语言中的 atoi() 函数。

什么是 Atoi()?

atoi() 函数将一个字符串中的整数值进行转换。输入字符串是一个字符序列,可以被转换成一个数值类型的返回值。当该函数遇到第一个它不认为是数字一部分的字符时,会停止读取输入字符串。这可能是字符串末尾的空字符。atoi() 函数不支持指数和小数。

函数 int atoi(const char *str) 存在于 C 语言库中,它将字符串参数 str 更改为整数。通常,该函数将字符串参数转换为整数。atoi() 函数会跳过字符串开头的所有空白字符。它还会将字符转换为数字部分,并在遇到第一个非数字字符时停止。

Atoi() 库函数

在 C 语言编程中,预定义的库函数 atoi() 用于处理字符串到整数的转换。该函数在头文件 stdlib.h 中指定。

Atoi() 函数的语法

Atoi() 函数的语法可以定义为:

参数

该函数只有一个参数,即一个字符串。需要记住的重要一点是,该字符串是作为常量接收的。atoi() 函数永远不会改变接收到的字符串,只返回其转换后的整数值。头文件 "stdlib.h" 支持 C 语言中所有的类型转换函数。

返回值

如果 str 是一个有效的输入,该函数返回与传递的字符串数字相等的整数。如果 str 没有有效的输入,函数将返回零值。通常,可以有效转换为数字的字符串包括以下几种:

  1. 完全由 ASCII 数字 '0123456789' 组成的字符串。
  2. 以字符 '+' 开头且完全由 ASCII 数字组成的字符串。
  3. 以字符 '-' 开头且完全由 ASCII 数字组成的字符串。

Atoi() 函数是增量工作的。换句话说,它会逐个构建由字符串表示的数字。只有在遇到非 ASCII 字符时,函数才会中断。

Atoi() 函数在中断后返回两个可能的值之一。如果在字符串开头调用该函数且没有转换任何值,它将返回 0。否则,它将返回最近转换得到的数字。

示例 1

让我们通过一个例子来理解 C 语言中的 atoi() 函数。

输出: 执行上述代码后,我们将得到如下输出

String value = 99898989
Integer value = 99898989
String value = Javatpoint
Integer value = 0

示例 2

此示例处理负数。如果第一个字符是 '-',则将符号设为负数,然后通过将符号乘以它来将字符串的其余部分转换为数字。

输出: 执行上述代码后,我们将得到如下输出

Output = -23233

示例 3

让我们看另一个使用 Atoi() 函数将字符串转换为整数的 C 程序。

输出: 执行上述代码后,我们将得到如下输出

输出是

Enter any integer = abc
Converted integer = 0
Enter any integer = 12221
Converted integer = 12221
Enter any integer = 1.1225112
Converted integer = 1