如何在C++中擴(kuò)展atoi功能

c++
小樊
83
2024-08-23 11:48:31

要在C++中擴(kuò)展atoi功能,可以使用自定義函數(shù)來實(shí)現(xiàn)類似的功能。以下是一個(gè)簡(jiǎn)單的示例代碼:

#include <iostream>
#include <string>

int custom_atoi(const std::string& str) {
    int result = 0;
    int sign = 1;
    int i = 0;

    // Check for negative sign
    if (str[0] == '-') {
        sign = -1;
        i++;
    }

    // Iterate through the characters of the string
    for (; i < str.length(); i++) {
        if (str[i] >= '0' && str[i] <= '9') {
            result = result * 10 + (str[i] - '0');
        } else {
            // Invalid character encountered
            std::cerr << "Invalid character found in input string" << std::endl;
            return 0;
        }
    }

    return sign * result;
}

int main() {
    std::string input = "-12345";
    int result = custom_atoi(input);

    std::cout << "The result of custom_atoi is: " << result << std::endl;

    return 0;
}

在上面的示例代碼中,自定義函數(shù)custom_atoi接受一個(gè)字符串作為輸入,并將其轉(zhuǎn)換為整數(shù)。該函數(shù)首先檢查輸入字符串中是否存在負(fù)號(hào),然后迭代處理每個(gè)字符,并將其轉(zhuǎn)換為對(duì)應(yīng)的數(shù)字。如果遇到非數(shù)字字符,則輸出錯(cuò)誤消息并返回0。最后,main函數(shù)演示了如何使用custom_atoi函數(shù)來將字符串轉(zhuǎn)換為整數(shù)并輸出結(jié)果。

通過類似的方法,您可以根據(jù)需要擴(kuò)展atoi功能,例如添加更多的錯(cuò)誤檢查、處理更大范圍的整數(shù)等。

0