の違いについて教えてくださいstd::string::c_str、std::string::データはもらえますか?[重複]
質問
この質問に答えはこちら
- 文字列c_str()に対データ) 6回答
なぜったい電話 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());
}
そこで、彼らは同じものを返します。
所属していません StackOverflow