ホームページ >バックエンド開発 >C++ >std::string には Null ターミネータが含まれますか?

std::string には Null ターミネータが含まれますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-05 04:24:11312ブラウズ

Does std::string Include a Null Terminator?

Does std::string Contain a Null Terminator?

C の std::string クラスには本質的にヌル ターミネータは含まれませんC スタイルのような null ターミネータ (' ') strings.

質問:

次の文字列には null ターミネータが含まれますか? ' ?

std::string temp = "hello whats up";

答え:

いいえ。 std::string は、null ターミネータなしで文字配列にデータを内部的に保存します。

説明:

ただし、temp を使用して C スタイルの文字列表現にアクセスする場合は、 .c_str()、返される文字列にはヌル終端文字が含まれます。

追加情報:

  • 次の例に示すように、他の文字と同様に std::string に null 文字を含めることができます。
string s("hello");
cout << s.size() << ' ';
s[1] = '';
cout << s.size() << '\n';
  • このコードは「5 5」を出力し、null 文字が文字列のサイズに影響を与えないことを示します。

以上がstd::string には Null ターミネータが含まれますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。