将 c 样式字符串转换为 std::string 的正确/最佳/最简单方法是什么。
转换应该接受一个 max_length,并在第一个 \0 字符处终止字符串,如果这发生在 max_length 宪章之前。
原文由 Allan 发布,翻译遵循 CC BY-SA 4.0 许可协议
将 c 样式字符串转换为 std::string 的正确/最佳/最简单方法是什么。
转换应该接受一个 max_length,并在第一个 \0 字符处终止字符串,如果这发生在 max_length 宪章之前。
原文由 Allan 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
string::string
上的此页面提供了两个可能的构造函数,它们可以满足您的需求:例子:
输出:
第一种形式认为
p
是一个简单的数组,因此将创建(在我们的例子中)一个长度为 15 的字符串,但是它打印为cout << ...
的 11 个字符的空终止字符串---
.可能不是你要找的。第二种形式会将
char*
隐式转换为字符串,然后保持其长度与您指定的n
之间的最大值。就你必须写的内容而言,我认为这是最简单的解决方案。