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

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

Susan Sarandon
發布: 2024-12-01 07:46:12
原創
833 人瀏覽過

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

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

將std::string 轉換為char* 或char[]資料類型在C 中是一個常見的任務,但值得注意的是不支援自動轉換。為了實現這一點,可以使用 c_str() 方法來取得 std::string 的 C 風格字串表示形式。

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

c_str() 方法傳回一個const char 指針,因此如果需要非常量指針,可以使用data() 方法代替:

char *cstr = str.data();
登入後複製

替代選項:

除了使用c_str() 和data() 之外,還有其他方法將std::string 轉換為char*:

  • 將字元複製到向量中:

    std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1);
    登入後複製

    請注意,此版本複製終止空字元(' ')。

  • 手動記憶體管理(謹慎使用):

    char *cstr = new char[str.size() + 1];
    std::strcpy(cstr, str.c_str());
    // do stuff
    delete [] cstr;
    登入後複製

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

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