在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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。