將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中文網其他相關文章!