C++:如何将字符串对象复制到int数组?

kin*_*er1 1 c++ linux arrays string

我在C++中有一串数字:比如string str ="1234567012"

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

  2. 最后我想将int数组重新复制到一个字符串数组.

请帮助我完成上述两个步骤.

R. *_*des 8

你可以使用这个std::transform功能:

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

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

int get_digit(char c) { return c - '0'; }

// ...
std::transform(str.begin(), str.end(), ints.begin(), get_digit);
Run Code Online (Sandbox Code Playgroud)

要执行相反的操作,您可以这样做:

std::string s(ints.size(), 0);
std::transform(ints.begin(), ints.end(), s.begin(),
               [](int i) { return i + '0'; });
Run Code Online (Sandbox Code Playgroud)