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");

  注:所谓“大”,是指字典序大(在字典中靠后)。

原文地址:https://www.cnblogs.com/bhd123/p/9528705.html