c++拓展-2:string头文件
头文件:string
用于简化操作的常用函数
string变量读取单个字符用s[i]可以读出
输入带空格的字符串,用getline(cin,a);(a为字符串类型变量)
str.=“”——清空
str.empty()——是否为空
str.size()——str长度
swap(s1,s2)——交换s1,s2
str. insert(x,“aaa”)——在下标x处插入aaa
str.substr(x,y)——读出下标为x开始长度为y的字符串
str.erase(x,y)——移除下标x长度为y的字符
str.find(“字符或字符串”)——找str中第一次出现的下标,找不到就是-1
while((i=str.find(“a”,i))!=-1) { i++; cout<<i<<endl; } ——读出所有a字符出现的下标
(基本思路是找到一个就从那个下标+1继续找)
str.replace(x,y,“aa”)——用aa替换(x,y)(删掉下标x开始长度为y个,在下标为x处插入aa)
构造函数和析构函数
string s——生成一个空字符串s
string s(str) ——拷贝构造函数 生成str的复制品
string s(str,stridx)——将字符串str内“始于位置stridx”的部分当作字符串的初值
string s(str,stridx,strlen) ——将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值
string s(cstr) ——将C字符串作为s的初值
string s(chars,chars_len) ——将C字符串前chars_len个字符作为字符串s的初值。
string s(num,c) ——生成一个字符串,包含num个c字符
string s(beg,end) ——以区间beg;end(不包含end)内的字符作为字符串s的初值
s.~string() ——销毁所有字符,释放内存
基本操作
=,assign()——赋以新值
swap()——交换两个字符串的内容
+=,append(),push_back()——在尾部添加字符
insert()——插入字符
erase()——删除字符
clear()——删除全部字符
replace()——替换字符
+——串联字符串
==,!=,<,<=,>,>=,compare()——比较字符串
size(),length()——返回字符数量
max_size()——返回字符的可能最大个数
empty()——判断字符串是否为空
capacity()——返回重新分配之前的字符容量
reserve()——保留一定量内存以容纳一定数量的字符
[ ], at()——存取单一字符
“>>”,getline()——从stream读取某值
” <<“ ——将谋值写入stream
copy()——将某值赋值为一个C_string
c_str()——将内容以C_string返回
data()——将内容以字符数组形式返回
substr()——返回某个子字符串
begin() end()——提供类似STL的迭代器支持
rbegin() rend()——逆向迭代器
get_allocator()——返回配置器
查找
find()
rfind()
find_first_of()
find_last_of()
find_first_not_of()
find_last_not_of()
这些函数返回符合搜索条件的字符区间内的第一个字符的索引,没找到目标就返回npos。所有的函数的参数说明如下:
第一个参数是被搜寻的对象。第二个参数(可有可无)指出string内的搜寻起点索引,第三个参数(可有可无)指出搜寻的字符个数。