string类包含于头文件string中,使用string类型前需要添加头文件string并使用名为std的名称空间。
#include<string> using namespace std;
string类型隐藏了字符串的数组性质。
- 可以使用c风格字符串初始化string对象。
- 可以使用cin从键盘输入到string对象中。
- 可以使用cout来显示string对象。
- 可以使用数组表示法来访问string对象中的字符。
string a = "First"; string b; cin >> b; cout << a; cout << a[2];
关于string类型的初始化。
string在未被初始化时长度为0,且其会根据输入的字符串长度自行调整长度。
string First = {"The Break Bowl"}; string Second {"Hank's Fine Eats"};
string类型提供了拼接,赋值,附加,比较等操作。
string a = "go"; string b = "od"; string c = "good"; string d; a == b; d = c; d = a + b; a += b;
值得一提的是,C中同样提供了附加和复制操作的函数,其存放在头文件cstring中。
其中包含了复制字符串的函数strcpy(数组名a,数组名b)意味着将b复制到a,附加函数strcat(数组a,数组b)意味着将b附加在a末尾。
#include<string> #include<cstring> char a[] = {"go"}; char b[] = {"od"}; char c[2]; strcpy(c, strcat(a,b));
关于string类的函数。
- =, s.assign() // 赋以新值
- swap() // 交换两个字符串的内容
- +=, s.append(), s.push_back() // 在尾部添加字符
- s.insert() // 插入字符
- s.erase() // 删除字符
- s.clear() // 删除全部字符
- s.replace() // 替换字符
- + // 串联字符串
- ==,!=,<,<=,>,>=,compare() // 比较字符串
- size(),length() // 返回字符数量
- max_size() // 返回字符的可能最大个数
- s.empty() // 判断字符串是否为空
- s.capacity() // 返回重新分配之前的字符容量
- reserve() // 保留一定量内存以容纳一定数量的字符
- [ ], at() // 存取单一字符
- >>,getline() // 从stream读取某值
- << // 将值写入stream
- copy() // 将值赋值为一个C_string
- c_str() // 返回一个指向正规C字符串(C_string)的指针 内容与本string串相同 有’\0’
- data() // 将内容以字符数组形式返回 无’\0’
- s.substr() // 返回某个子字符串
- begin() end() // 提供类似STL的迭代器支持
- rbegin() rend() // 逆向迭代器
- get_allocator() // 返回配置器
- .......