1. 使用c_str() 或 data()(只读访问)
#include <iostream>
#include <string>
int main() {
std::string str = "Hello, World!";
const char* charPtr = str.c_str(); // C++11 前使用
// 或者
const char* charPtr2 = str.data(); // C++11 后推荐
std::cout << charPtr << std::endl;
// 注意:这是只读访问,不要尝试修改内容
// charPtr[0] = 'h'; // 错误!未定义行为
return 0;
}
注意以上方法是赋值给 const char*,而非 char*
2.使用strcpy()
std::string str = "Hello, World!";
// 分配足够的内存(+1 用于 null 终止符)
char* charPtr = new char[str.length() + 1];
// 复制内容
strcpy(charPtr, str.c_str());
std::cout << charPtr << std::endl;
// 可以安全修改
charPtr[0] = 'h';
std::cout << charPtr << std::endl;
// 记得释放内存
delete[] charPtr;
浙公网安备 33010602011771号