云服务器免费试用

如何用C++实现atoi函数

服务器知识 0 207

#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函数,可以将字符串转换为整数。注意在实现时需要考虑一些边界条件,比如正负号、溢出等情况。

如何用C++实现atoi函数

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942@qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何用C++实现atoi函数
本文地址: https://solustack.com/170496.html

相关推荐:

网友留言:

我要评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。