用 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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP