stringは文字列を操作しやすくするライブラリです。
string s;//sに入力を受け取る
cin >> s;//sに入力を入れる
string s = "hogehoge";//sは出力したい文字列
cout << s;//sが出力される。
配列と同じように、stringの$i$番目の文字は[$i-1$]に入っています。
また、+演算子や>などの比較演算子も普通と同じように使えます。
string s = "abc";
cout << s[1] << endl;//"b"が出力される。
s += "def";//s="abcdef"となった。
cout << s[5] << endl;//"f"が出力される。
if(s == "abcdef"){
//sは"abcdef"なのでこちらに分岐する。
cout << "YES" << endl;
}
string s = "abc";
cout << s.length() << endl;//sの長さ"3"が出力される。
cout << s.size() << endl;//size()でも同じ事ができます。
insert()とerase()で文字を挿入・削除する
string s = "abc";
s.insert(s.begin()+2,'-');//s[2]の前に"-"を挿入する。この時s="ab-c"となっている。
s.erase(s.begin()+1);//s[1]を消去する。この時s="a-c"となっている。
//どちらも計算量はO(s.length())となっている。
to_string()とstoi()で数値と文字列の相互変換
int a = 200;
string s = to_string(a);//sには"200"が入る。
a = stoi("400");//aには400が入る。
s = a;//このように書いてはならない。プログラムが異常終了する。
a = stoll("100000000000000");//long long型にはstoll()を使う。桁あふれが発生した時にはプログラムが異常終了する事に気を付ける。
string s = "abcd";
reverse(s.begin(),s.end());//sが逆順になる。s="dcba"となる。