std::string转char *
时间: 2023-04-21 08:02:55 浏览: 927
std::string可以通过c_str()函数转换为char *类型。例如:
std::string str = "Hello World!";
char *cstr = &str[]; // 或者 char *cstr = str.c_str();
相关问题
std::string转char*
要将std::string转换为char*,有三种方法可以使用。第一种方法是使用c_str()函数,该函数返回一个指向字符串的const char*指针,可以通过强制类型转换将其转换为char*。例如:
std::string str = "Hello world";
const char* cstr = str.c_str();
char* charPtr = const_cast<char*>(cstr);
第二种方法是使用data()函数,该函数返回一个指向字符串的const char*指针,同样可以通过强制类型转换将其转换为char*。例如:
std::string str = "Hello world";
const char* data = str.data();
char* charPtr = const_cast<char*>(data);
第三种方法是使用copy()函数,该函数可以将std::string中的字符复制到一个char*缓冲区中。需要注意的是,在使用该函数之前,需要确保目标缓冲区足够大以容纳字符串和终止符。例如:
std::string str = "Hello world";
char charArr[12];
str.copy(charArr, str.size() + 1);
charArr[str.size()] = '\0';
<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [std::string 与 char* 之间的转换](https://blog.csdn.net/u014801811/article/details/80113382)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *3* [C++ 模板写的短小字符串类,用于替换字符数组和std::string](https://download.csdn.net/download/foxtj35/12240064)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
std::string 转 char*
std::string 转 char* 可以使用 string 的 c_str() 函数,如下所示:
std::string str = "Hello, world!";
const char* cstr = str.c_str(); // 转换为 const char* 类型
char* ptr = strdup(cstr); // 复制字符串并转换为 char* 类型
注意:这里需要使用 strdup() 函数来分配内存,并且需要手动释放分配的内存。
阅读全文