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

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

Patricia Arquette
Patricia Arquette原創
2024-11-30 15:39:09131瀏覽

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

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

在C 中,可能會遇到需要轉換std:: string(保存字元序列)轉換為char* 或char[] 表示的以null 結尾的字元陣列。但是,使用賦值運算子直接轉換會導致錯誤。

要實現此轉換,可以使用多種方法:

1. c_str() 方法:

std::string 的c_str()方法傳回指向底層C 風格字串的指針,該字串以null 結尾。此指標可以直接分配給 char* 變數。

2. data() 方法:

std::string 的data() 方法也傳回一個指向底層C 風格字串的指針,但它是非常量。此指標可以指派給不帶 const 限定符的 char* 變數。

其他選項:

  • 複製到std: : 向量:
複製到std: :p8>

  • 一個向量:
  • 人可以建立一個std:: 字元向量並將字元從std::string 複製到其中。然後可以使用向量的 data() 方法來取得 char* 指標。

手動記憶體分配:

可以手動分配記憶體使用new 運算子分配一個字元數組,將字元從std::string 複製到在該數組中,並將該數組用作char* 指標。由於手動記憶體管理問題,應謹慎使用此方法。 總之,std::string 的 c_str() 和 data() 方法提供了將 std::string 轉換為 char* 的便捷方法或 char[] 資料類型。其他選項,例如複製到 std::vector 或手動記憶體分配,可以在特定情況下使用。

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn