1. ホーム
  2. C++

C++ std::string は NULL で初期化できない、基本的な使い方

2022-02-08 01:40:24
<パス

std::stringをパスでまとめた質問を偶然発見しました。

C++ basic_string::_S_construct nullが有効でない。

スタックオーバーフローの例
std::string stringはNULLで初期化してはいけません。コンパイルは通りますが、実行時にエラーになります。
std::stringでは、nullに初期化するために以下の2つの方法を使用します。

std::string s;//execute the default constructor
std::string s = "";//execute the copy constructor

文字列をクリアし、参照する cplusplus.comヘルプドキュメント

std::string s = "123";
s.clear();

クリア文字列
文字列の内容を消去し、空文字列(文字数0)にします。

また、std::string は null と比較できませんが、"" と比較することは可能です。

文字列を要約すると

C++標準ライブラリの文字列クラスstd::stringの使用法
/#include
std::stringのs1です。
std::stringのs3(s2)です。
std::string s2("this is a string")となります。
begin 文字列の先頭を指すイテレータを取得する。
end 文字列の終端を指すイテレータを取得します。
rbegin 逆方向の文字列の先頭を指すイテレータを取得します。
rend 逆方向の文字列の終端を指すイテレータを取得します。
size 文字列の大きさを取得する
length() と size 関数は、同じ機能を持ちます。
max_size 文字列が取り得る最大のサイズ
容量 メモリを再割り当てしない場合の文字列の可能な大きさ
empty 文字列が空かどうかを判定します。
operator[]は最初の要素を取り、配列に相当する
c_str C 言語形式の const char* 文字列を取得する。
data 文字列の内容のアドレスを取得します。
operator= 代入演算子
リザーブ
スワップスワップ機能
挿入文字
append 文字を追加する
push_back アペンド文字
erase 文字列を削除する
clear 文字コンテナの内容をすべて消去します
リサイズ 領域の再割り当て
assign は、代入演算子と同じです
replace は置換します。
文字列をスペースにコピーする
検索、0を基準としたインデックス番号を返す
rfind 逆引き
find_first_of 含む部分文字列から任意の文字を検索し、最初の位置を返す。
find_first_not_of 部分文字列を含まない文字を検索し、最初の位置を返します。
find_last_of 部分文字列の中の任意の文字を見つけて、最後の位置を返します。
find_last_not_of は、部分文字列の中からそれを含まない文字を見つけ、最後の位置を返します。
substr(n1,len) n1から始まる文字列のうち、長さlenの部分文字列を取得する。
文字列の比較(すべての関係演算子をサポート)
compare 文字列の比較
operator+ 文字列リンク
operator+= += 演算子
operator== 等しいかどうかを判断する
operator!= 等しくないかどうかを判断する。
演算子< より小さいかどうかを判定します。
operator>> 入力ストリームから文字列を読み込む
operator<< 出力ストリームに文字列を書き込む
getlineは入力ストリームから1つ読み取る