使用 std::string_view 的子字符串控制台输出 [关闭]
Posted
技术标签:
【中文标题】使用 std::string_view 的子字符串控制台输出 [关闭]【英文标题】:Substring console output using std::string_view [closed] 【发布时间】:2020-06-15 11:58:55 【问题描述】:是否可以使用std::string_view
对std::string
的控制台输出进行子串化?
例如:
std::string toolong "this is a string too long for me";
std::string_view(toolong);
// do something...
预期的控制台输出:this is a string
【问题讨论】:
喜欢this? 请具体解释“太长”是如何定义的。此外,您是否只想格式化输出,或者您实际上需要string_view
(可能还有其他仅显示方式)。
【参考方案1】:
是的,它被称为 substring-ing。
std::string toolong "this is a string too long for me";
std::string_view view(toolong);
std::cout << view.substr(0, 16);
或者,您也可以使用remove_prefix()
和remove_suffix()
方法。
例子:
view.remove_suffix(16); // view is now "this is a string"
view.remove_prefix(5); // view is now -> "is a string"
如果您想就地执行此操作而不创建变量string_view
,请使用substr()
std::string toolong "this is a string too long for me";
std::cout << std::string_view (toolong).substr(0, 16);
【讨论】:
以上是关于使用 std::string_view 的子字符串控制台输出 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
将 std::string_view 与 api 一起使用,期望以 null 终止的字符串
将 std::string_view 与 api 一起使用,期望以 null 终止的字符串
为啥 std::string_view 比 const char* 快?