在C中、阿托伊代表ASCII 到整数.这atoi()是 C 中的库函数,可将字符串形式的数字转换为其整数值。简而言之,atoi() 函数接受一个字符串(表示整数)作为参数,并返回一个整数值。
Catoi()函数内部定义<stdlib.h>头文件。
atoi()函数的语法
int atoi(const char *strg);
参数
- strg: 要转换为整数的字符串。
Note: The atoi function takes in a string as a constant (Unchangeable) and gives back the converted integer without modifying the original string.
返回值
atoi() 函数返回以下值:
- 一个等效整数值仅当输入字符串时才将输入字符串解释为数字str已验证。
- 如果转换无效,函数返回 0。
Note: In the case of an overflow the returned value is undefined.
C 语言atoi() 的示例
示例 1:
此示例演示如何将字符串形式的数字转换为其整数值。
C
// C program to illustrate the use of atoi()
#include <stdio.h>
#include <stdlib.h>
int main()
{
// string to be converted
char strToConvert[] = "908475966";
// converting string using atoi()
int ConvertedStr = atoi(strToConvert);
// printing the Converted String
printf("String to be Converted: %s\n", strToConvert);
printf("Converted to Integer: %d\n", ConvertedStr);
return 0;
}
输出
String to be Converted: 908475966 Converted to Integer: 908475966
解释:将字符串“99898989”转换为对应的整数值,并打印原始字符串和返回的整数值。
示例 2:
此示例显示输入字符串是否包含非数字字符,因此函数返回 0。
C
// C program to illustrate the use of atoi()
#include <stdio.h>
#include <stdlib.h>
int main()
{
// string to be converted
char strToConvert[] = "geeksforgeeks";
// converting string using atoi()
int ConvertedStr = atoi(strToConvert);
// printing the Converted String
printf("String to be Converted: %s\n", strToConvert);
printf("Converted to Integer: %d\n", ConvertedStr);
return 0;
}
输出
String to be Converted: geeksforgeeks Converted to Integer: 0
解释:尝试将字符串 “geeksforgeeks” 转换为整数,但该字符串包含非数字字符,因此函数返回 0。
如何用 C 语言实现您自己的atoi()?
atoi() 函数的等效函数很容易实现。一种可能的实现方法如下所示:
方法
- I将 res 初始化为 0。
- 迭代字符串的每个字符,并通过将其乘以 10 来更新 res,并不断添加当前数字的数值。 (res = res*10+(strg[i]-‘0’))
- 继续直到字符串末尾。
- 返回资源。
atoi() 在 C 中的实现
C
// C program to Implement Custom atoi()
#include <stdio.h>
int atoi_Conversion(const char* strg)
{
// Initialize res to 0
int res = 0;
int i = 0;
// Iterate through the string strg and compute res
while (strg[i] != '\0') {
res = res * 10 + (strg[i] - '0');
i++;
}
return res;
}
int main()
{
const char strg[] = "12345";
int value = atoi_Conversion(strg);
// print the Converted Value
printf("String to be Converted: %s\n", strg);
printf("Converted to Integer: %d\n", value);
return 0;
}
输出
String to be Converted: 12345 Converted to Integer: 12345
要了解有关不同方法的更多信息,请参阅文章 -写你自己的atoi()
atoi() 函数的属性
atoi() 函数对于不同的输入类型有不同的输出。以下示例显示了 atoi() 函数对于不同输入值的行为。
1.atoi()函数不识别小数点或指数。
C
// C program to illustrate the Property 1: Passing the
// decimal point string to atoi()
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int res_val;
char inp_str[30];
// Initialize the input string
strcpy(inp_str, "12.56");
// Converting string to integer using atoi()
res_val = atoi(inp_str);
// print result
printf("Input String = %s\nResulting Integer = %d\n",
inp_str, res_val);
return 0;
}
输出
Input String = 12.56 Resulting Integer = 12
2. 将无效字符串传递给atoi() 返回 0。
C
// C program to illustrate the Property 2: Passing Invalid
// string to atoi()
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int res_val;
char inp_str[30];
// Initialize the input string
strcpy(inp_str, "geeksforgeeks");
// Converting string to integer using atoi()
res_val = atoi(inp_str);
// print result
printf("Input String = %s\nResulting Integer = %d\n",
inp_str, res_val);
return 0;
}
输出
Input String = geeksforgeeks Resulting Integer = 0
3. 传递部分有效的字符串会导致仅转换整数部分。 (如果非数字值位于开头则返回 0)
C
// C program to illustrate the Property 3: Passing Partially
// valid String to atoi()
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int res_val;
char inp_str[30];
// Initializing the input string
strcpy(inp_str, "1234adsnds");
// Convert string to integer using atoi() and store the
// result in result_value
res_val = atoi(inp_str);
printf("Input String = %s\nResulting Integer = %d\n",
inp_str, res_val);
return 0;
}
输出
Input String = 1234adsnds Resulting Integer = 1234
4. 将以字符“+”开头的字符串传递给atoi(),然后“+”将被忽略,仅返回整数值。
C
// C program to illustrate Property 4: Passing String
// beginning with the character '+' to atoi()
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int res_val;
char inp_str[30];
// Initializing the input string
strcpy(inp_str, "+23234");
// Convert string to integer using atoi() and store the
// result in result_value
res_val = atoi(inp_str);
printf("Input String = %s\nResulting Integer = %d\n",
inp_str, res_val);
return 0;
}
输出
Input String = +23234 Resulting Integer = 23234
5. 将以“-”开头的字符串传递给atoi(),然后 结果开头包含“-”。
C
// C program to illustrate Property 5: Passing String
// beginning with the character '-' passed to atoi()
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int res_val;
char inp_str[30];
// Initializing the input string
strcpy(inp_str, "-23234");
// Convert string to integer using atoi() and store the
// result in result_value
res_val = atoi(inp_str);
printf("Input String = %s\nResulting Integer = %d\n",
inp_str, res_val);
return 0;
}
输出
Input String = -23234 Resulting Integer = -23234
结论
- atoi() 函数将数字字符串转换为其相应的整数值。
- 要在 C 程序中使用 atoi() 函数,请包含 stdlib.h 头文件。
- atoi() 仅接受一个字符串参数作为输入。
- 如果作为参数传递的字符串无效,则该函数返回 0。
相关用法
- C语言 atoi()用法及代码示例
- C语言 atof()用法及代码示例
- C语言 atol()用法及代码示例
- C语言 atexit()用法及代码示例
- C语言 atan()用法及代码示例
- C语言 atan2()用法及代码示例
- C语言 abs()用法及代码示例
- C语言 abort()用法及代码示例
- C语言 asctime()用法及代码示例
- C语言 acos()用法及代码示例
- C语言 arc()用法及代码示例
- C语言 asin()用法及代码示例
- C语言 assert()用法及代码示例
- C语言 asctime()、asctime_s()用法及代码示例
- C语言 Atoi()用法及代码示例
- C语言 Getchar()用法及代码示例
- C语言 printf() and scanf()用法及代码示例
- C语言 strchr()用法及代码示例
- C语言 strcpy()用法及代码示例
- C语言 strcat()用法及代码示例
- C语言 宏 assert()用法及代码示例
- C语言 isdigit()用法及代码示例
- C语言 islower()用法及代码示例
- C语言 setlocale()用法及代码示例
- C语言 cos()用法及代码示例
注:本文由纯净天空筛选整理自manshisharma13大神的英文原创作品 atoi() Function in C。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。