如何用C++实现atoi函数
导读:#include <iostream> #include <string> int myAtoi(std::string str { int sign = 1, base = 0, i = 0;...
#include <
iostream>
#include <
string>
int myAtoi(std::string str) {
int sign = 1, base = 0, i = 0;
// skip leading whitespaces
while (str[i] == ' ') {
i++;
}
// check for sign
if (str[i] == '-' || str[i] == '+') {
sign = (str[i++] == '-') ? -1 : 1;
}
// convert digits to integer
while (isdigit(str[i])) {
if (base >
INT_MAX / 10 || (base == INT_MAX / 10 &
&
str[i] - '0' >
7)) {
return (sign == 1) ? INT_MAX : INT_MIN;
}
base = 10 * base + (str[i++] - '0');
}
return base * sign;
}
int main() {
std::string str = "12345";
int result = myAtoi(str);
std::cout <
<
"Converted integer: " <
<
result <
<
std::endl;
return 0;
}
这段代码实现了一个简单的atoi函数,可以将字符串转换为整数。注意在实现时需要考虑一些边界条件,比如正负号、溢出等情况。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何用C++实现atoi函数
本文地址: https://pptw.com/jishu/695501.html
