用 C++ 編寫自己的 atoi()
atoi() 函式在 c 程式語言中用於處理字串到整形的轉換。此函式接受字串作為輸入並返回整數型別的轉換結果。
語法
int atoi(const char string)
接受的引數 - atoi() 函式接受字串作為輸入,然後將該字串轉換為等效的整數。
返回型別 - 此函式返回一個整數。對於有效字串該值將是等效的整數,否則函式將返回 0。
atoi() 函式的實現 -
我們將遍歷字串的每個字元,並將該數字乘以 10 並新增到前面結果中來建立整數。
對於負整數,我們將檢查字串的第一個字元是否為 -,如果是,我們將最終結果乘以 -1。
我們將檢查字串是否有效,即檢查字串中的每個字元是否介於 0 到 9 之間。
演示我們解決方案實現的程式,
示例
#include <iostream> using namespace std; bool isNumericChar(char x) { return (x >= '0' && x <= '9') ? true : false; } int myAtoi(char* str) { if (*str == '\0') return 0; int result = 0; int sign = 1; int i = 0; if (str[0] == '-') { sign = -1; i++; } for (; str[i] != '\0'; ++i) { if (isNumericChar(str[i]) == false) return 0; result = result * 10 + str[i] - '0'; } return sign * result; } int main() { char string[] = "-32491841"; int intVal = myAtoi(string); cout<<"The integer equivalent of the given string is "<<intVal; return 0; }
輸出
The integer equivalent of the given string is -32491841
廣告