如何解决二维字符数组到一维字符串数组
在 C++ 中将二维字符数组复制到一维字符串数组的最简单方法是什么?
类似的东西:
char inCharArray[3][255];
string outStringArray[3];
for (int i = 0; i < sizeof(inCharArray) / sizeof(inCharArray[i]); i++)
{
outStringArray[i] = inCharArray[i];
}
问候 提尔曼
解决方法
使用 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。
,std::transform
的这个替代方案对我来说更具可读性:
std::copy(std::begin(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");
在编写 C++ 代码时,还可以考虑使用 std::array
而不是 C 风格的数组。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。