如何在 C++ 中将数字字符串转换为 int 数组 [重复]
Posted
技术标签:
【中文标题】如何在 C++ 中将数字字符串转换为 int 数组 [重复]【英文标题】:How to convert a numerical string into an int array in C++ [duplicate] 【发布时间】:2017-10-02 23:52:08 【问题描述】:假设我有一个字符串“12345”但想把它变成一个数组,什么代码或函数允许我这样做?
示例: 我输入:“12345”,我希望它在 C++ 中变成数组(与键入相同)[1、2、3、4、5]。我知道函数 stoi.("12345") 将字符串转换为整数,但是我将如何使该整数成为数组?
【问题讨论】:
这就是你想要的。您尝试过什么? 欢迎来到 ***.com。请花点时间阅读the help pages,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。也请take the tour 和read about how to ask good questions。最后请学习如何创建Minimal, Complete, and Verifiable Example。 另外,为了进一步说明,您希望“数组”是字符数组还是整数数组? 我感觉很好,这里有一些提示:如果你有一个包含数字的std::string
,那么你可以循环它。第一个字符将是'1'
(在您的示例中)。只需减去字符'0'
,您就可以轻松地将字符从字符转换为对应的数字等效数字。 IE。 '1' - '0' == 1
迭代整数的数字很困难。如果你有一个字符串,那么迭代字符串的“数字”(真正的字符)会容易得多。正如我之前的评论中提到的,您可以轻松地将字符中的数字转换为其对应的“整数”值。
【参考方案1】:
你可以写这样的函数:
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';
但您必须确信数组大小足以存储所有数字。
【讨论】:
或者使用内置函数。 coliru.stacked-crooked.com/a/e9fdbe001e9d0df4 我只能使用以上是关于如何在 C++ 中将数字字符串转换为 int 数组 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
当我不使用标准字符串时,如何在 C++ 中将字符串转换为 int?