ホームページ >バックエンド開発 >C++ >C std::string を char* または char[] に変換するにはどうすればよいですか?

C std::string を char* または char[] に変換するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-03 04:20:10806ブラウズ

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

std::string を char* または char[]

std::stringchar* またはC の char[] データ型は自動的に変換されないため、明示的なメソッドが必要です。

方法 1: c_str() を使用する

To std::string の C 文字列バージョンを取得するには、 c_str() メソッド。このメソッドは const char を返します。非 const char の場合は、.data():

std::string str = "string";
const char *cstr = str.c_str(); // const char*
char *cstr = str.data(); // non-const char*

方法 2: Vector にコピーする

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

方法 3: 手動配列割り当て (非推奨)

手動で配列を割り当てる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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。