首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >二维字符数组到一维字符串数组

二维字符数组到一维字符串数组
EN

Stack Overflow用户
提问于 2021-03-15 14:16:09
回答 2查看 126关注 0票数 0

在c++中,将二维字符数组复制到一维字符串数组的最简单方法是什么?

就像这样:

代码语言:javascript
复制
    char inCharArray[3][255];
    string outStringArray[3];

    for (int i = 0; i < sizeof(inCharArray) / sizeof(inCharArray[i]); i++)
    {
        outStringArray[i] = inCharArray[i];
    }

问候蒂尔曼

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-15 14:24:37

使用STL算法是最好的方法之一。

代码语言:javascript
复制
char inCharArray[3][255];
string outStringArray[3];

std::transform(
    std::begin(inCharrArray),
    std::end(inCharArray),
    std::begin(outStringArray),
    [](char const* c_str) -> std::string {
        return std::string{c_str};
    }
);

这是假定字符串在255之前结束。

票数 1
EN

Stack Overflow用户

发布于 2021-03-15 18:23:46

对于我来说,这个替代std::transform的方法更容易读懂:

代码语言:javascript
复制
std::copy(std::begin(inCharArray),
          std::end(inCharArray),
          std::begin(outStringArray));

// only safe if input strings are null-terminated and arrays have equal size
static_assert(std::size(inCharArray) == std::size(outStringArray),
              "arrays are not equal size");

在编写std::array代码时,还要考虑使用C++而不是C风格的数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66639664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档