std::string::data()
なぜ電話をかけたいのstd::string::c_str()
ですか?確かに、ここには標準の狂気への何らかの方法があります...
6943 次
3 に答える
19
c_str() は NUL 終了を保証します。data() はしません。
于 2009-10-07T21:46:24.243 に答える
6
c_str() は、NUL バイトが追加されたデータへのポインターを返すため、戻り値を「C 文字列」として使用できます。
data() は、データへのポインタを変更せずに返します。
使用しているコードが、文字列が NUL で終了していると想定している場合 (C 文字列を処理するために作成された関数など)、c_str() を使用します。
于 2009-10-07T21:46:58.417 に答える
1
MS STL 10.0では、ヘッダーに次のように表示されるため、違いはないようです。
...\Microsoft Visual Studio 10.0\VC\include\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());
}
だから彼らは同じものを返します。
于 2011-07-06T22:07:02.533 に答える