c++ 17的std::string_view是轻量级字符串视图类。测试下:
cpp
// 接收 string_view,零拷贝,支持传入多种字符串类型
static void process_text(std::string_view text) {
std::cout << "字符串内容: " << text << ", 字符串长度: " << text.size() << std::endl;
}
void testString_view(void) { // 测试c++ 17的std::string_view
std::string str = "Hello, vicky du";
const char* cstr = "only you...";
process_text(str); // 传入 std::string
process_text(cstr); // 传入 C 风格字符串
process_text("张良,萧何,陈平,周勃,韩信,樊哙,英布,彭越,卢绾");// 传入字面量
std::string_view persons = "张良,萧何,陈平,周勃,韩信,樊哙,英布,彭越,卢绾";
auto char_count = std::ranges::count_if(persons, [](char c) {
return (c & 0xC0) != 0x80;
});
std::cout << "UTF‑8字符数量(汉字+标点): "<< char_count << std::endl;
// 零拷贝截取子串
std::string_view sv = "love u";
std::string_view sub = sv.substr(2, 2); // 仅调整指针和长度
std::cout << "子串: " << sub << std::endl;
}
运行:

ok.