在c++中,将二维字符数组复制到一维字符串数组的最简单方法是什么?
就像这样:
char inCharArray[3][255];
string outStringArray[3];
for (int i = 0; i < sizeof(inCharArray) / sizeof(inCharArray[i]); i++)
{
outStringArray[i] = inCharArray[i];
}问候蒂尔曼
发布于 2021-03-15 14:24:37
使用STL算法是最好的方法之一。
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之前结束。
发布于 2021-03-15 18:23:46
对于我来说,这个替代std::transform的方法更容易读懂:
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风格的数组。
https://stackoverflow.com/questions/66639664
复制相似问题