[c++]字符串

2021/04 29 20:04

原始字符串字面量以R”( 开头,以 )” 结尾
const char* str = R”( Hello “World”)”;

例如const char* p1= “Line1\nLine2”;
可以等价为
const char* p1 = R”(Line1
Line2)”;

默认为(和)为字面量语法,也可以扩展原始字符串字面量语法
R”X( …. )X”

例如

const char* str = R”-(Embedded )” characters)-“;

// std::to_string 提供了数值向字符串转换的内建函数
auto s = std::to_string(102);

// 还有
std::atoi, stoi, stol, stod …

// 可以使用to_chars进行一些低级数值转换
std::to_chars(…
std::from_chars(…

std::string_view类

在C++17之前,混用const char* 和 std::string是非常痛苦的,或者添加const std::string&,并不优雅

C++17引用了std::string_view类,它不复制字符串,支持与std::string类似的接口,缺少c_str()但是支持data();

using namespace std::string_view_literals;
或者 using namespace std;
auto sv = “hello world”sv;

此特性需要支持C++17特性
VS2019默认没有打开C++17,需要手工打开