string
string基操:
#include<string>
string a;
cin>>a;
长度的获取:
a.size();
获得第一个字符:
string:const_iterator it=s.begin();
count<<*it<<endl;
获得最后一个字符:
string:const_iterator it=s.end();
it--;
count<<*it<<endl;
倒置串:
reserve(s.begin(),s.end());
查找串:
s.find(s1);
有的话返回起始位置 没有则返回-1
截取string的字串:
substr有2种用法:
假设:string s = "0123456789";
string sub1 = s.substr(5); //只有一个数字5表示从下标为5开始一直到结尾:sub1 = "56789"
string sub2 = s.substr(5, 3); //从下标为5开始截取长度为3位:sub2 = "567"
添加:
在末尾加字符或字符串直接用加号:
string ss;
ss+='a';
ss+="aaa";
在中间插入一个字符用ss.insert()函数:
ss.insert(ss.begin()+1,'a');//在ss[1]之前插入字符a
在中间插入一个字符串可以用替换函数ss.replace()
ss.replace(2,0,"aaa");//从第二个字符开始将连续0个元素替换为aaa(就是将aaa插入到了第二个字符前面了)
删除:
给ss赋空值ss=""就是把整个字符串清空了。
用ss.erase()删除掉迭代器所指的一个或一个区间内(左闭右开)的元素。
string::iterator it=ss.begin();
ss.erase(it+1);
ss.erase(it+1,it+3);
替换:
就是用ss.replace()函数,第一个参数表示从第几个字符开始,第二个参数表示一共替换几个,第三个参数表示换成的字符(串);
ss="abcdefg";
ss.replace(2,2,"999");
结果ss为ab999efg;
查找:
使用ss.find()函数,查得到则返回第一个下标,查不到返回4294967295
ss.find("abc");
比较:
使用ss.compare()函数,ss大则返回1,小返回-1,相等返回0.
ss.compare("abc");
注:所谓“大”,是指字典序大(在字典中靠后)。