我在 C++ 中有一串数字:比如 string str="1234567012"
我希望将其复制到一个 int 数组,这样数组的每个元素都有一个数字。现在我可以使用迭代器,一次迭代一个并使用
static_cast<int>(*iter)
。但是有没有更简单直接的方法呢?最后我想将 int 数组重新复制到字符串数组。
请帮我完成以上两个步骤。
最佳答案
您可以使用 std::transform
函数:
std::vector<int> ints(str.size());
std::transform(str.begin(), str.end(), ints.begin(),
[](char c) { return c - '0'; });
如果您的编译器尚不支持 lambda,您可以使用常规函数:
int get_digit(char c) { return c - '0'; }
// ...
std::transform(str.begin(), str.end(), ints.begin(), get_digit);
要进行反向操作,你可以做类似的事情:
std::string s(ints.size(), 0);
std::transform(ints.begin(), ints.end(), s.begin(),
[](int i) { return i + '0'; });
关于C++:如何将字符串对象复制到 int 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8944366/