在c ++中将String转换为Cstring

tea*_*ter 13 c++ string cstring

我是字符串来转换它string="apple",并希望把它放入这种风格的c字符串,这char *c是成立{a,p,p,l,e,'\0'}.我应该使用哪种预定义方法?谢谢你.

Yan*_*min 25

.c_str()返回一个const char*.如果您需要可变版本,则需要自己制作副本.

  • 在C++ 11中,函数`.data()`和`.c_str()`是同义词,但在C++ 98` .data()`中返回一个可能不会被空字符`\终止的指针0`."无法保证空字符终止由`.data`返回的值所指向的字符序列 (2认同)

byt*_*ter 9

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();
Run Code Online (Sandbox Code Playgroud)

.c_str()适用于不可变的.矢量将为您管理内存.