用 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

更新於:17-Apr-2020

558 次觀看

開啟你的職業生涯

完成課程獲得認證

開始
廣告