首頁 > 後端開發 > C++ > 如何將 C std::string 轉換為 char* 或 char[]?

如何將 C std::string 轉換為 char* 或 char[]?

Patricia Arquette
發布: 2024-12-03 04:20:10
原創
799 人瀏覽過

How Do I Convert a C   std::string to a char* or char[]?

將std::string 轉換為char* 或char[]

std::string 轉換為char* 或char[]資料C 中的類型需要明確方法,因為它們不會自動轉換。

方法1:使用c_str()

取得std::string,使用c_str() 方法。此方法傳回一個 const char。對於非常量char,請使用.data():

std::string str = "string";
const char *cstr = str.c_str(); // const char*
char *cstr = str.data(); // non-const char*
登入後複製

方法2:複製到向量

std::string字元複製到std::vector:

std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1);
char *ptr = cstr.data(); // pointer to c-string
登入後複製

方法三:手動分配陣列(不建議)

手動分配陣列C 字串:

const char *cstr = new char[str.size() + 1];
std::strcpy(cstr, str.c_str());
// ... use the array ...
delete [] cstr;
登入後複製
記住該手冊至關重要記憶體管理可能會導致錯誤。作為最佳實踐,最好使用

.c_str().data().

以上是如何將 C std::string 轉換為 char* 或 char[]?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板