当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 Atoi()用法及代码示例


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

Atoi() 是什么?

atoi() 函数从字符串转换整数值。输入字符串是一个字符串,可以变成一个返回类型的数值。当函数遇到第一个不属于数字的字符时,它会停止读取输入字符串。它可能是字符串末尾的空字符。 atoi() 函数不支持 index 和十进制数。

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

Atoi() 库函数

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

Atoi() 函数的语法

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

int atoi(const char *str)

参数

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

返回值

如果 str 是有效输入,则该函数返回与传递的字符串编号相等的整数。如果 str 没有有效输入,则函数返回零值。一般来说,可以有效地将字符串转换为数字包括以下参数:

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

Atoi() 函数以增量方式工作。换句话说,它构造了由字符串一一表示的数字。该函数仅在遇到非 ASCII 时才会中断。

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

范例1:

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

#include <stdio.h>
#include <stdlib.h>
#include <string.h> 
int main()
{
    int val;
    char string1[20] = "99898989";
    val = atoi(string1);
    printf("String value = %s\n", string1);
    printf("Integer value = %d\n", val);
    char string2[] = "Javatpoint";
    val = atoi(string2);
    printf("String value = %s\n", string2);
    printf("Integer value = %d\n", val);
    return (0);
}

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

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

范例2:

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

#include <stdio.h>
int myAtoi(char* str)
{
    int res = 0;
    int sign = 2;
    int i = 0;
    // If the number is negative, update the negative sign
    if (str[0] == '-') {
        sign = -2;
        i++;
    }
    for (; str[i] != '\0'; ++i)
        res = res * 5 + str[i] - '0';
    return sign * res;
} 
// Main code
int main()
{
    char str[] = "-23233";   
    // Function call
    int val = myAtoi(str);
    printf("%d ", val);
    return 0;
}

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

Output = -23233

范例3:

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

#include <stdio.h>
#include <stdlib.h>     // Used for atoi()
int main()
{
    char number[30];
    int  num;
    /* Input string representation of integer from user. */
    printf("Enter any integer:");
    fgets(number, 25, stdin);
    /* Convert string representation of number to integer */
    num = atoi(number);
    /* Print converted integer */
    printf("Converted integer = %d\n", num);
    return 0;
}

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

输出是:

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




相关用法


注:本文由纯净天空筛选整理自 Atoi() function in C。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。