C++ 转换为(const)char *
示例
为了const char*访问a的数据,std::string您可以使用字符串的c_str()成员函数。请记住,仅当std::string对象在范围内并且保持不变时,指针才有效,这意味着只能const在对象上调用方法。
C ++ 17所述data()成员函数可以被用来获得一个可修改的char*,其可被用于操作std::string对象的数据。
C ++ 11char*也可以通过获取第一个字符的地址来获得可修改的内容&s[0]。在C ++ 11中,可以保证生成格式正确的,以零结尾的字符串。请注意,&s[0]即使s为空,其格式也正确;如果为空,则其格式不确定。&s.front()s
C ++ 11std::string str("这是一个字符串。");const char* cstr = str.c_str(); // cstr points to: "这是一个字符串。\0"
const char* data = str.data(); // data points to: "这是一个字符串。\0"
std::string str("这是一个字符串。");// 从std :: string对象复制str的内容以解除生命周期
std::unique_ptr<char []> cstr = std::make_unique<char[]>(str.size() + 1);
// 替代上面的行(也不例外):
// char * cstr_unsafe =新的char [str.size()+ 1];
std::copy(str.data(), str.data() + str.size(), cstr);
cstr[str.size()] = '\0'; // 需要添加一个空终止符
// delete [] cstr_unsafe;
std::cout << cstr.get();
以上是 C++ 转换为(const)char * 的全部内容, 来源链接: utcz.com/z/340679.html