の違いについて教えてくださいstd::string::c_str、std::string::データはもらえますか?[重複]

StackOverflow https://stackoverflow.com/questions/1534399

  •  20-09-2019
  •  | 
  •  

質問

この質問に答えはこちら

なぜったい電話 std::string::data() 以上 std::string::c_str()?はあるのではないでしょうかんらかの方法では、標準の狂気。

役に立ちましたか?

解決

c_str()NUL終端を保証します。データ()しません。

他のヒント

c_str()あなたは「C文字列」として戻り値を使用できるように追加NULバイトとデータへのポインタを返します。

データ()変更せずにデータへのポインタを戻します。

使用しているコードは、文字列を想定している場合は、

c_str()を使用しNULは(例えばCの文字列を処理するために書かれた任意の関数として)終了します。

これでMSのSTL 10.0で、どんな違いがあるようには思えない私は、ヘッダーでこれを見てます:

...マイクロソフトのVisual Studio \ 10.0 \ VC \には\ XSTRING

const _Elem *c_str() const
    {   // return pointer to null-terminated nonmutable array
    return (_Myptr());
    }

const _Elem *data() const
    {   // return pointer to nonmutable array
    return (c_str());
    }

そこで、彼らは同じものを返します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top