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