要在C++中擴展atoi功能,可以使用自定義函數來實現類似的功能。以下是一個簡單的示例代碼:
#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;
}
在上面的示例代碼中,自定義函數custom_atoi接受一個字符串作為輸入,并將其轉換為整數。該函數首先檢查輸入字符串中是否存在負號,然后迭代處理每個字符,并將其轉換為對應的數字。如果遇到非數字字符,則輸出錯誤消息并返回0。最后,main函數演示了如何使用custom_atoi函數來將字符串轉換為整數并輸出結果。
通過類似的方法,您可以根據需要擴展atoi功能,例如添加更多的錯誤檢查、處理更大范圍的整數等。