C 11 では、c_str() および data() にヌル終了文字列が必要ですか?

Mary-Kate Olsen
リリース: 2024-10-27 03:15:02
オリジナル
202 人が閲覧しました

 Does C  11 Require Null-Terminated Strings for c_str() and data()?

C 11 では、c_str() メソッドでヌル終端以外の文字列を使用できますか?

C 11 では、c_str( )basic_string クラスが変更されました。これは現在、data() と同等であると定義されており、文字列の n 番目の要素へのポインタを返すように定義されています。ここで、n は 0 から文字列のサイズから 1 を引いた値までです。

ただしc_str() と data() の両方の基礎となる、operator[] メソッドの更新された定義により、文字列が内部で null で終了するバッファを使用する必要があることが明確になりました。

具体的には、operator[] メソッドには次のものが必要です。戻り値は、charT() の値を持つ T 型のオブジェクトへの参照です。ここで、T は文字列要素の型、charT() は null 文字の型です。さらに、この参照値は変更できません。

c_str() と data() は両方とも O(1) 操作である必要があるため、実装では基本的に null 終了バッファーの使用が強制されます。さらに、operator[] メソッドの戻り値要件は、終端の null 文字が文字列の要素と同じバッファ内に存在する必要があることも意味します。

以上がC 11 では、c_str() および data() にヌル終了文字列が必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!