C ++:如何将string对象复制到一个int数组?

我在C ++中有一串数字:like string str =“1234567012”

  1. 我希望将其复制到一个int数组中,使数组中的每个元素都有一个数字。 现在我可以使用一个迭代器,每次迭代一个,并使用static_cast<int>(*iter) 。 但是有没有更简单直接的方法?

  2. 最后我想recopy int数组到string数组。

请帮助我以上两个步骤。

Solutions Collecting From Web of "C ++:如何将string对象复制到一个int数组?"

你可以使用std::transform函数:

 std::vector<int> ints(str.size()); std::transform(str.begin(), str.end(), ints.begin(), [](char c) { return c - '0'; }); 

如果你的编译器还不支持lambdas,你可以使用一个常规函数:

 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'; }); 

像这样的东西:

 std::vector<int> v; v.reserve(str.size()); for (char c : str) { v.push_back(c - '0'); } //... string s; for (int i : v) { s += i + '0'; }