使用 std::string_view 的子字符串控制台输出

Substring console output using std::string_view

是否可以使用 std::string_viewstd::string 的控制台输出进行子字符串化?

例如:

std::string toolong {"this is a string too long for me"};  
std::string_view(toolong);
// do something...

预期控制台输出:this is a string

是的,这叫做子字符串化。

std::string toolong {"this is a string too long for me"};  
std::string_view view(toolong);

std::cout << view.substr(0, 16);

或者,您也可以使用 remove_prefix() and 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);