C++ std::string は NULL で初期化できない、基本的な使い方
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つ読み取る
関連
-
C++ JSON ライブラリ jsoncpp 新 API の使用法 (CharReaderBuilder / StreamWriterBuilder)
-
c++11の機能を含むcmakeの書き方 (-std=c++11 cmakeList.txtに書き込む方法)
-
C++-コラムフィッティングフィットシリンダー
-
C++プリントベクター
-
エラー: "***"の前にイニシャライザーがあります。
-
const char*' から `char*' への変換が無効な場合の対処法
-
c++ experience summary(1):linux c compile with warning: assign makes pointer from integer without cast reason.
-
文字列がこのスコープで宣言されていない 問題の解決
-
C++エラー:不明な型名
-
c++ベクトル使用集
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Linux の 'pthread_create' への未定義参照問題を解決しました。
-
vs2015 はソースファイル stdio.h を見つけることができない 解決策
-
34:5: エラー: 制御が非ボイド関数の終わりに達する可能性がある [-Werror,-Wreturn-type] エラー解析
-
C++のコンパイルエラーで修飾子が破棄される [-fpermissive] 。
-
C++: エラー C2228: '.str' の左側にはクラス/構造体/結合が必要
-
c++ 11 random ライブラリの簡単な使い方
-
C++によるhttpサーバー/webサーバーの作成
-
c/c++の "undefined reference to "の解決法
-
C++ inet_pton, inet_ntop 関数
-
c++は、ダブルフリーまたは破損(fasttop)が表示されます。