|
#include <string>
template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> > class basic_string;stringはchar型だが、同様にUnicode文字wchar_t型を扱うstd::wstringがある。またC++11からは、char16_t型およびchar32_t型のものも追加された。
typedef basic_string<char> string;
typedef basic_string<wchar_t> wstring;
typedef basic_string<char16_t> u16string;わかりやすく言えば、例えばstd::stringはstd::basic_string<char>の別名ということである。
typedef basic_string<char32_t> u32string;
#include <string>strにabcを代入し、その後末尾にdefを連結し、標準出力に結果を出力する。
#include <iostream>
int main() {
using namespace std;
string str;
str = "abc";
str += "def"
cout << str << endl;
return 0;
}
string();上から順に、次のように文字列は作られる。
string(size_type size, char chr);
string(const char *str);
string(const char *str, size_type size);
string(string &str, size_type index, size_type size);
string(input_iterator start, input_iterator end);
s1 == s2各文字列は、比較演算子によって比較できる。
s1 > s2
s1 < s2
s1 >= s2
s1 <= s2
s1 != s2
s1 + s2
s1 += s2
s[]
append() | 文字列の後ろに他の文字列を連結する |
assign() | 文字列にテクストを割り当てる |
at() | 指定されたインデックスの文字を返す |
begin() | 最初の文字を示すイテレーターを返す |
c_str() | C言語形式の文字配列(ASCIIZ)を返す |
capacity() | 文字列が格納できる文字数を返す |
compare() | 2つの文字列を比較する |
copy() | 文字列の中に文字列をコピーする |
data() | 最初の文字へのポインタを返す |
empty() | 文字列が空ならtrueを返す |
end() | 文字列の最後を指すイテレーターを返す |
erase() | 文字列の一部分を削除する |
find() | 文字列を検索する |
find_first_of() | 文字列を検索し、最初の要素のインデックスを返す |
find_first_not_of() | 文字列を検索し、最初の要素でないインデックスを返す |
find_last_of() | 文字を検索し、一番最後の要素のインデックスを返す |
find_last_not_of() | 文字を検索し、一番最後の要素でないインデックスを返す |
get_allocator() | 文字列のアロケーターを返す |
insert() | 文字列の中に他の文字列を挿入する |
length() | 文字列の長さを返す |
max_size() | 文字列が保持することができる最大の長さを返す |
rbegin() | 文字列の最後を示すリバースイテレーターを返す |
rend() | 文字列の最初を示すリバースイテレーターを返す |
replace() | 文字列の中の文字を置換する |
reserve() | 文字を格納する容量を確保する |
resize() | 文字列の大きさを変更する |
rfind() | 文字列を検索し、最後の要素のインデックスを返す |
size() | 文字列の文字数を返す |
substr() | 文字列の一部切り出した文字列を返す |
swap() | 2つの文字列を交換する |