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

标签 c++ linux arrays string

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

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

  2. 最后我想将 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/

相关文章:

java - 如何等到环境是非 headless (headless)的?

linux - Centos从文件添加多个接口(interface)到VLAN

c++ - clang 的全局构造函数警告是否过于严格?

linux - Bash - 通过用户输入打破 while 循环

C# 从 byte[] 获取 string[]

c++ - 字符数组复制错误

c++ - Dev C++ 上出现了一个奇怪的 sizeof() 错误

c++ - 如何在 C++ 中为高分辨率时钟声明变量?

c++ - 奇怪的指针语法

c++ - cpp中的映射字符串