c++中如何自定義實(shí)現(xiàn)類似itoa的功能

c++
小樊
83
2024-09-13 01:23:02
欄目: 編程語言

在C++中,你可以通過編寫一個(gè)自定義函數(shù)來實(shí)現(xiàn)類似itoa的功能

#include<iostream>
#include<string>
#include<algorithm>

std::string my_itoa(int value) {
    if (value == 0) {
        return "0";
    }

    std::string result;
    bool is_negative = false;

    if (value < 0) {
        is_negative = true;
        value = -value;
    }

    while (value > 0) {
        int digit = value % 10;
        result += '0' + digit;
        value /= 10;
    }

    if (is_negative) {
        result += '-';
    }

    // 反轉(zhuǎn)字符串
    std::reverse(result.begin(), result.end());

    return result;
}

int main() {
    int number = -12345;
    std::string str_number = my_itoa(number);
    std::cout << "Number: "<< number << ", String: "<< str_number<< std::endl;
    return 0;
}

這個(gè)示例中的my_itoa函數(shù)接受一個(gè)整數(shù)值作為參數(shù),并返回一個(gè)表示該整數(shù)的字符串。函數(shù)首先檢查輸入值是否為零,如果是,則直接返回字符串"0"。然后,函數(shù)檢查輸入值是否為負(fù)數(shù),如果是,則將其轉(zhuǎn)換為正數(shù),并設(shè)置一個(gè)布爾變量以便稍后添加負(fù)號(hào)。接下來,函數(shù)使用循環(huán)將整數(shù)的每一位添加到結(jié)果字符串中,最后將字符串反轉(zhuǎn)并返回。

0