C++文字列操作マスタリ

基本操作

str.size(); || str.length();//文字列の長さを返す
str1.swap(str2); || swap(str1, str2);//str1とstr2を交換(前者推奨)
str.substr(pos, len);//pos位置からlen文字の部分文字列を取得
reverse(str.begin(), str.end());//文字列を反転
string str(count, ch);//ch文字をcount回繰り返した文字列を生成
sort(str.begin(), str.end());//文字列をソート

代入とコピー

部分コピー

str1.assign(str2, pos, len);//str2のpos位置からlen文字をstr1に代入
str.copy(buf, pos, len);//strのpos位置からlen文字をbufにコピー

完全コピー

str1 = str2;//str2をstr1に完全コピー

文字列結合

直接結合

str1 += str2;//str2をstr1末尾に追加

部分結合

str1.append(str2, pos, len);//str2のpos位置からlen文字をstr1末尾に追加

文字列比較

str1がstr2より小さい場合は負の値、等しい場合は0、大きい場合は正の値を返す(char*も可)

完全比較

str1.compare(str2); || strcmp(str1, str2);//文字列全体を比較

部分と完全比較

str1.compare(pos, len, str2);//str1のpos位置からlen文字とstr2全体を比較

部分同士の比較

str1.compare(pos1, len1, str2, pos2, len2);//str1とstr2の指定範囲を比較

文字列置換

部分置換

str1.replace(pos1, len1, str2, pos2, len2);//str1の範囲をstr2の範囲で置換

文字指定置換

str.replace(pos, len, count, ch);//指定範囲をch文字count回で置換

文字列挿入

str1.insert(pos, str2, pos2, len);//str1のpos位置にstr2の部分文字列を挿入
str1.insert(pos, count, ch);//str1のpos位置にch文字をcount回挿入

文字列削除

全削除

str.erase();//文字列を全消去

末尾削除

str.erase(pos);//pos位置以降を削除

範囲削除

str.erase(pos, len);//指定範囲を削除

文字列検索

前方検索

str.find(ch);//先頭から文字chを検索
str.find(ch, pos);//pos位置から後方へ検索
str.find_first_of(ch);//最初に見つかるchの位置
str.find_first_not_of(ch);//最初にchでない文字の位置

後方検索

str.rfind(ch);//末尾から前方へ検索
str.find_last_of(ch);//最後に見つかるchの位置
str.find_last_not_of(ch);//最後にchでない文字の位置

タグ: C++ String STL 文字列操作

7月18日 19:48 投稿