在 C++ 中,itoa
函數不是標準庫函數,但我們可以使用標準庫中的其他函數來實現類似的功能。對于負數,我們需要先處理符號位,然后將負數轉換為正數進行轉換。下面是一個簡單的示例:
#include<iostream>
#include<string>
#include<algorithm>
std::string 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 += '-';
}
// 反轉字符串
std::reverse(result.begin(), result.end());
return result;
}
int main() {
int num = -12345;
std::string str = itoa(num);
std::cout << "Converted string: "<< str<< std::endl;
return 0;
}
這個示例中,我們首先檢查輸入值是否為負數。如果是負數,我們將其轉換為正數,并在轉換過程中記錄符號位。然后,我們將整數轉換為字符串,最后根據符號位添加負號。