在本文中,我们将通过示例讨论 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 没有有效输入,则函数返回零值。一般来说,可以有效地将字符串转换为数字包括以下参数:
- 字符串完全由 ASCII 数字 '0123456789' 组成。
- 以字符 '+' 开头且完全由 ASCII 组成的字符串
- 字符串完全由 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
相关用法
- C语言 fread()用法及代码示例
- C语言 feof()用法及代码示例
- C语言 imagesize()用法及代码示例
- C语言 getarcoords()用法及代码示例
- C语言 strcspn()用法及代码示例
- C语言 setlinestyle()用法及代码示例
- C语言 showbits()用法及代码示例
- C语言 sprintf()用法及代码示例
- C语言 outtextxy()用法及代码示例
- C语言 isgraph()用法及代码示例
- C语言 grapherrormsg()用法及代码示例
- C语言 moveto()用法及代码示例
- C语言 putchar()用法及代码示例
- C语言 tmpnam()用法及代码示例
- C语言 putpixel()用法及代码示例
- C语言 fillellipse()用法及代码示例
- C语言 outtext()用法及代码示例
- C语言 atan2()用法及代码示例
- C语言 isprint()用法及代码示例
- C语言 getchar()用法及代码示例
注:本文由纯净天空筛选整理自 Atoi() function in C。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。