跳至内容

Jixun's Blog 填坑还是开坑,这是个好问题。

Mastodon

C++ - 转换 string 到 int

写的比较随意,在面试的 OJ 系统里还忘了判定空字符的情况…

bool is_digit(const char c)
{
    return (c >= '0') && (c <= '9');
}

bool parse_number(std::string& str, int& val)
{
    const char* c = str.c_str();
    bool neg = false;
    if (*c == '-') {
        neg = true;
        c++;
    }

    // empty string
    if (!*c)
    {
        return false;
    }

    val = 0;
    while(*c)
    {
        if (!is_digit(*c))
        {
            return false;
        }

        val = val * 10 + (*c - '0');
        c++;
    }

    if (neg)
    {
        val = -val;
    }

    return true;
}

面试的题只有一个,就是在不使用 std::list 的情况下实现一个简单的链表。

继续阅读 »