字符串反转
reverse()
std:: void reverse(s.begin(), s.end());
上面是原地反转的方法,如果需要反转到别的 string 里面,一样简单:
s1.assign(s.rbegin(), s.rend());
效率也相当理想。
字符串删除
erase()
string s;
s.erase(pos,n);
从s[pos]开始删除n个字符;
s.erase(pos);
从s[pos]开始删除到串末;
string::iterator i=s.begin();
s.erase(i);
删除迭代器指向元素,返回下一元素迭代器
s.erase(i,s.end());
删除区间[i,s.end())
之间的所有元素,返回下一元素迭代器
补充
void pop_back()
只能删除string的最后一个元素
字符串查找
*find*(**)
系列方法参数可以是char 或者 string 类型, 为待查找的目标, 返回值为 size_type
即查找串的第一个字符的位置;当 查找不到目标时,返回值为 npos
, 可以这样判断
string longer("That's a funny hat.");
//size_type loc1 = longer.find("hat"); // 存在
size_type loc1 = longer.find("hello"); //不存在
if (loc1 == string::npos)
cout<< "not found" <<endl;