Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

เขียน atoi() ของคุณเองใน C++


ฟังก์ชัน atoi() ในภาษาซีใช้เพื่อจัดการการแปลงสตริงเป็นจำนวนเต็ม ฟังก์ชันรับสตริงเป็นอินพุตและส่งกลับค่าเป็นประเภทจำนวนเต็ม

ไวยากรณ์

int atoi(const char string)

ยอมรับพารามิเตอร์แล้ว ฟังก์ชัน atio() ยอมรับสตริงเป็นอินพุตซึ่งจะถูกแปลงเป็นจำนวนเต็มเทียบเท่า

ประเภทการคืนสินค้า − ฟังก์ชันส่งกลับค่าจำนวนเต็ม ค่าจะเท่ากับจำนวนเต็มสำหรับสตริงที่ถูกต้อง มิฉะนั้น จะส่งกลับ 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