名前空間
変種
操作

文字列ライブラリ

提供: cppreference.com
< cpp

C++ の文字列ライブラリには3種類の文字列に対するサポートが含まれています。

  • std::basic_string - 任意の文字型の文字列を操作するために設計されたテンプレートクラス
  • std::basic_string_view (C++17) - 文字列の一部への軽量な所有権のない読み込み専用のビュー
  • ヌル終端文字列 - 特別なヌル文字で終端する文字配列

目次

[編集] std::basic_string

テンプレートクラス std::basic_string は文字の並びを操作したり格納したりする方法を一般化します。 文字列の作成、操作、破棄はすべてクラスメソッドや関連関数の便利な集合で処理されます。

一般的に使用される型に対して std::basic_string の特殊化がいくつか提供されます。

ヘッダ <string> で定義
定義
std::string std::basic_string<char>
std::wstring std::basic_string<wchar_t>
std::u8string (C++20以上) std::basic_string<char8_t>
std::u16string (C++11以上) std::basic_string<char16_t>
std::u32string (C++11以上) std::basic_string<char32_t>

std::basic_string_view

テンプレートクラス std::basic_string_viewstd::basic_string のインタフェースに似たインタフェースを使用して文字列や文字列の一部への読み込み専用アクセスを提供する軽量なオブジェクトです。

一般的に使用される型に対して std::basic_string_view の特殊化がいくつか提供されます。

ヘッダ <string> で定義
定義
std::string_view (C++17以上) std::basic_string_view<char>
std::wstring_view (C++17以上) std::basic_string_view<wchar_t>
std::u8string_view (C++20以上) std::basic_string_view<char8_t>
std::u16string_view (C++17以上) std::basic_string_view<char16_t>
std::u32string_view (C++17以上) std::basic_string_view<char32_t>
(C++17以上)

[編集] ヌル終端文字列

ヌル終端文字列は特別なヌル文字で終端する文字配列です。 C++ はヌル終端文字列を作成、調査、変更する関数を提供します。

ヌル終端文字列は3種類あります。

[編集] 追加のサポート

[編集] std::char_traits

文字列ライブラリは std::basic_string および std::basic_string_view (C++17以上) に対する型と関数を定義するクラステンプレート std::char_traits も提供します。 以下の特殊化が定義されています。

ヘッダ <string> で定義
template<> class char_traits<char>;
template<> class char_traits<wchar_t>;
template<> class char_traits<char8_t>;
(C++20以上)
template<> class char_traits<char16_t>;
(C++11以上)
template<> class char_traits<char32_t>;
(C++11以上)

[編集] 変換と分類

ローカライゼーションライブラリは文字列変換に対するサポート (std::wstring_convert など) や文字を分類する関数 (std::isspacestd::isdigit など) を提供します。

[編集] 関連項目

ローカライゼーションライブラリC++リファレンス
文字列ライブラリC言語リファレンス