假设我有一个字符串“12345”,但想把它变成一个数组,那个代码或函数允许我这样做?
实施例: 我输入:“12345”,我希望它在c ++中变成数组(与输入相同)[1,2,3,4,5]。我知道函数stoi。(“12345”)将字符串转换为整数,但是如何将该整数作为数组呢?
答案 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';
}
}
但你必须确信数组大小足以存储所有数字。