如何在C ++中将数字字符串转换为int数组

时间:2017-10-02 23:52:08

标签: c++ arrays string int

假设我有一个字符串“12345”,但想把它变成一个数组,那个代码或函数允许我这样做?

实施例: 我输入:“12345”,我希望它在c ++中变成数组(与输入相同)[1,2,3,4,5]。我知道函数stoi。(“12345”)将字符串转换为整数,但是如何将该整数作为数组呢?

1 个答案:

答案 0 :(得分:2)

你可以写这样的功能:

std::vector<int> toIntArray(const std::string& str) {
    const std::size_t n = str.length();

    std::vector<int> digits(n);
    for (std::size_t i = 0; i < n; ++i)
        digits[i] = str[i] - '0';  // converting character to digit

    return digits;
}

或者如果你不能使用std::vector

void toIntArray(int* digits, const char* str) {
    while (*str) {
        *digits++ = *str++ - '0';
    }
}

但你必须确信数组大小足以存储所有数字。