头文件: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内的搜寻起点索引,第三个参数(可有可无)指出搜寻的字符个数。