C++ 转换为(const)char *

示例

为了const char*访问a的数据,std::string您可以使用字符串的c_str()成员函数。请记住,仅当std::string对象在范围内并且保持不变时,指针才有效,这意味着只能const在对象上调用方法。

C ++ 17

所述data()成员函数可以被用来获得一个可修改的char*,其可被用于操作std::string对象的数据。

C ++ 11

char*也可以通过获取第一个字符的地址来获得可修改的内容&s[0]。在C ++ 11中,可以保证生成格式正确的,以零结尾的字符串。请注意,&s[0]即使s为空,其格式也正确;如果为空,则其格式不确定。&s.front()s

C ++ 11
std::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

回到顶部