কম্পিউটার টিউটোরিয়াল

C++-এ নিজের atoi() লিখা

C প্রোগ্রামিং ল্যাঙ্গুয়েজে atoi() ফাংশন স্ট্রিং থেকে ইন্টিজার কনভার্সন হ্যান্ডেল করতে ব্যবহৃত হয়। ফাংশনটি একটি স্ট্রিং ইনপুট হিসেবে নেয় এবং ইন্টিজার টাইপে ভ্যালু রিটার্ন করে।

সিনট্যাক্স

int atoi(const char string)

অ্যাক্সেপ্টেড প্যারামিটার — atoi() ফাংশন একটি স্ট্রিং ইনপুট হিসেবে গ্রহণ করে যা ইন্টিজার ইকুইভ্যালেন্ট-এ কনভার্ট হবে।

রিটার্ন টাইপ — ফাংশনটি একটি ইন্টিজার ভ্যালু রিটার্ন করে। একটি বৈধ স্ট্রিং-এর জন্য মানটি ইন্টিজার ইকুইভ্যালেন্ট হবে অন্যথায় ০ রিটার্ন হবে।

atoi() ফাংশন ইমপ্লিমেন্টেশন —

আমরা স্ট্রিং-এ প্রতিটি ক্যারেক্টার নিব এবং প্রিভিয়াস রেজাল্টকে ১০ দিয়ে গুন করে নম্বরটি যোগ করে ইন্টিজার বানাব।

নেগেটিভ ইন্টিজারের জন্য, আমরা চেক করব স্ট্রিং-এ প্রথম ক্যারেক্টার - কিনা, হলে ফাইনাল রেজাল্টকে -1 দিয়ে গুন করব।

আমরা একটি বৈধ স্ট্রিং চেক করব প্রতিটি ক্যারেক্টার ০ থেকে ৯-এর মধ্যে আছে কিনা দেখে।

উদাহরণ

আমাদের সমাধানের ইমপ্লিমেন্টেশন দেখানোর প্রোগ্রাম,

#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
  1. C++-এ নম্বর স্ট্রিংকে ইন্টিজারে কনভার্ট করা

  2. C++-এ নিজের sizeof অপারেটর বাস্তবায়ন করা

  3. C++-এ স্ট্রিং টোকেনাইজ (Tokenize) করা

  4. নিজস্ব কেইসার সিফার এনকোডার তৈরি করুন: ধাপে ধাপে গাইড