web-dev-qa-db-ja.com

C ++での文字列からCstringへの変換

私はこれを変換する文字列ですstring="Apple"、それをこのスタイルのc-stringに入れたい、char *c、それは{a,p,p,l,e,'\0'}。どの事前定義メソッドを使用する必要がありますか?どうぞよろしくお願いします。

12
teamaster

.c_str()const char*を返します。可変バージョンが必要な場合は、自分でコピーを作成する必要があります。

24
Yann Ramin
vector<char> toVector( const std::string& s ) {
  string s = "Apple";  
  vector<char> v(s.size()+1);
  memcpy( &v.front(), s.c_str(), s.size() + 1 );
  return v;
}
vector<char> v = toVector(std::string("Apple"));

// what you were looking for (mutable)
char* c = v.data();

.c_str()は不変に機能します。ベクトルはメモリを管理します。

9
bytemaster