Joh*_*och 14 c++ static-cast string-view
我的问题是由stackoverflow上的这个答案激发的,/sf/answers/3365740731/.报价,
问:你如何转换
std::string_view为const char*?答:只需做一个
std::string(string_view_object).c_str()获得保证的以空值终止的临时副本(并在行尾清理它).
不幸的是,它构建了一个新的string.我想知道是否可以做到,
static_cast<string>(string_view_object).c_str()
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是:
这会构造一个新字符串吗?
是否保证返回以null结尾的char序列?
我有一小段代码用于演示.它似乎工作正常.(参见wandbox 结果)
#include <string>
#include <iostream>
#include <string_view>
#include <cstring>
int main()
{
std::string str{"0123456789"};
std::string_view sv(str.c_str(), 5);
std::cout << sv << std::endl;
std::cout << static_cast<std::string>(sv) << std::endl;
std::cout << strlen(static_cast<std::string>(sv).c_str()) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1037 次 |
| 最近记录: |