c++ string 实现逆序

#include<iostream>
#include <string>
using namespace std; 
int main()
{
 string str("cvicses");
 string s(str.rbegin(),str.rend());
 cout << s <<endl;
 return 0;
}
//既然是c++的string,可以考虑用用string的反向迭代器了
</pre><pre id="best-answer-content" class="reply-text mb10" name="code" style="white-space: pre-wrap; word-wrap: break-word;"><h2 style="margin: 0px; padding: 0px;"><a target=_blank id="viewpost1_TitleUrl" class="singleposttitle" href="http://www.cppblog.com/Onway/articles/135481.html" style="color: rgb(51, 102, 153); text-decoration: none;">C++ string 常用函数</a></h2><div><p>一,类型别名</p><table border="0"><tbody><tr><td width="207" valign="top"><p>size_type</p></td><td width="352" valign="top"><p>无符号整型</p></td></tr><tr><td width="207" valign="top"><p>iterator</p></td><td width="352" valign="top"><p>迭代器类型</p></td></tr><tr><td width="207" valign="top"><p>const_iterator</p></td><td width="352" valign="top"><p>只读迭代器</p></td></tr><tr><td width="207" valign="top"><p>reverse_iterator</p></td><td width="352" valign="top"><p>逆序迭代器</p></td></tr><tr><td width="207" valign="top"><p>const_reverse_iterator</p></td><td width="352" valign="top"><p>只读逆序迭代器</p></td></tr><tr><td width="207" valign="top"><p>different_type</p></td><td width="352" valign="top"><p>足以存储两个迭代器差值的有符号整型</p></td></tr><tr><td width="207" valign="top"><p>value_type</p></td><td width="352" valign="top"><p>元素类型</p></td></tr><tr><td width="207" valign="top"><p>reference</p></td><td width="352" valign="top"><p>元素左值类型,是value_type&的同义词</p></td></tr><tr><td width="207" valign="top"><p>const_reference</p></td><td width="352" valign="top"><p>元素常量左值类型,是const value_type&的同义词</p></td></tr></tbody></table><p>二,构造函数</p><table border="0"><tbody><tr><td width="187" valign="top"><p>string s1;</p></td><td width="386" valign="top"><p>默认构造函数</p></td></tr><tr><td width="187" valign="top"><p>string s2(s1);</p></td><td width="386" valign="top"><p>初始化为s1的副本</p></td></tr><tr><td width="187" valign="top"><p>string s3("value");</p></td><td width="386" valign="top"><p>初始化为字符串字面值的副本</p></td></tr><tr><td width="187" valign="top"><p>string s4(n,'c');</p></td><td width="386" valign="top"><p>初始化为n个字符为'c'的副本</p></td></tr><tr><td width="187" valign="top"><p>string s5(cp,n);</p></td><td width="386" valign="top"><p>初始化为cp所指数组的前n个字符的副本</p></td></tr><tr><td width="187" valign="top"><p>string s6(s1,pos);</p></td><td width="386" valign="top"><p>初始化为s1从下标pos开始的字符的副本</p></td></tr><tr><td width="187" valign="top"><p>string s7(s1,pos,len);</p></td><td width="386" valign="top"><p>初始化为s1从下标pos开始长度为len个字符的副本</p></td></tr><tr><td width="187" valign="top"><p>string s8(b,e);</p></td><td width="386" valign="top"><p>初始化为迭代器b和e标记范围内的元素的副本</p></td></tr></tbody></table><p>三,添加元素</p><table border="0"><tbody><tr><td width="166" valign="top"><p>s.push_back('t');</p></td><td width="400" valign="top"><p>尾部添加值为t的字符</p></td></tr><tr><td width="166" valign="top"><p>s.insert(p,'t');</p></td><td width="400" valign="top"><p>迭代器p前面插入值为't'的字符,返回指向新字符的迭代器</p></td></tr><tr><td width="166" valign="top"><p>s.insert(p,n,'t');</p></td><td width="400" valign="top"><p>迭代器p前插入n个值为't'的字符,返回void</p></td></tr><tr><td width="166" valign="top"><p>s.insert(p,b,e);</p></td><td width="400" valign="top"><p>迭代器p前插入由迭代器b和e标记范围的元素</p></td></tr><tr><td width="166" valign="top"><p>s.insert(pos,n,'t');</p></td><td width="400" valign="top"><p>在下标pos前插入n个值为't'的字符</p></td></tr><tr><td width="166" valign="top"><p>s.insert(pos,s2);</p></td><td width="400" valign="top"><p>在下标pos前插入string对象s2</p></td></tr><tr><td width="166" valign="top"><p>s.insert(pos,s2,pos2,len);</p></td><td width="400" valign="top"><p>在下标pos前插入s2从pos2下标开始的len个字符</p></td></tr><tr><td width="166" valign="top"><p>s.insert(pos,cp,len);</p></td><td width="400" valign="top"><p>在下表pos前插入cp所指数组的前len个字符</p></td></tr><tr><td width="166" valign="top"><p>s.insert(pos,cp);</p></td><td width="400" valign="top"><p>在下表pos前插入cp所指的以空字符结束的字符串</p></td></tr></tbody></table><p> </p><p> </p><p> </p><p> </p><p> </p><p> </p><p>四,删除元素</p><table border="0"><tbody><tr><td width="127" valign="top"><p>s.erase(p);</p></td><td width="445" valign="top"><p>删除迭代器p所指向的元素。返回指向被删元素后一个元素的迭代器</p></td></tr><tr><td width="127" valign="top"><p>s.erase(b,e);</p></td><td width="445" valign="top"><p>删除由迭代器b和e标记范围内的元素,返回指向被删元素段后一个元素的迭代器</p></td></tr><tr><td width="127" valign="top"><p>s.pop_back();</p></td><td width="445" valign="top"><p>删除最后一个元素。返回void。VS2010支持。</p></td></tr><tr><td width="127" valign="top"><p>s.clear();</p></td><td width="445" valign="top"><p>删除所有元素,返回void</p></td></tr></tbody></table><p>五,长度大小</p><table border="0"><tbody><tr><td width="142" valign="top"><p>s.size();</p></td><td width="430" valign="top"><p>返回s中元素个数,类型为size_type</p></td></tr><tr><td width="142" valign="top"><p>s.max_size();</p></td><td width="430" valign="top"><p>返回s中可容纳最多元素个数,类型为size_type</p></td></tr><tr><td width="142" valign="top"><p>s.empty();</p></td><td width="430" valign="top"><p>返回s中元素是否为0的布尔值</p></td></tr><tr><td width="142" valign="top"><p>s.resize(n);</p></td><td width="430" valign="top"><p>调整s的长度大小,使其能容纳n个元素</p><p>如果n<s.size(),则删除多余元素,否则,添加采用值初始化的新元素</p></td></tr><tr><td width="142" valign="top"><p>s.resize(n,'t');</p></td><td width="430" valign="top"><p>调整s的长度大小,使其能容纳n个值为't'的元素</p></td></tr><tr><td width="142" valign="top"><p>s.capacity();</p></td><td width="430" valign="top"><p>返回在s需要分配更多存储空间前能存储的元素个数,返回类型为size_type</p></td></tr><tr><td width="142" valign="top"><p>s.reserve(n);</p></td><td width="430" valign="top"><p>设置s预留n个元素的存储空间,返回void</p></td></tr></tbody></table><p>六,赋值操作</p><table border="0"><tbody><tr><td width="143" valign="top"><p>s1=s2;</p></td><td width="431" valign="top"><p>删除s1的所有元素,将s2元素复制给s1</p></td></tr><tr><td width="143" valign="top"><p>s1.swap(s2);</p></td><td width="431" valign="top"><p>将s1和s2的内容交换</p></td></tr><tr><td width="143" valign="top"><p>s.assign(b,e);</p></td><td width="431" valign="top"><p>重设s的元素:将迭代器b和e标记范围的元素复制给s</p></td></tr><tr><td width="143" valign="top"><p>s.assign(n,'t');</p></td><td width="431" valign="top"><p>重设s为存储了n个值为't'的对象</p></td></tr><tr><td width="143" valign="top"><p>s.assign(s2);</p></td><td width="431" valign="top"><p>不解析</p></td></tr><tr><td width="143" valign="top"><p>s.assign(s2,pos2,len);</p></td><td width="431" valign="top"><p>不解析</p></td></tr><tr><td width="143" valign="top"><p>s.assign(cp,len);</p></td><td width="431" valign="top"><p>不解析</p></td></tr><tr><td width="143" valign="top"><p>s.assign(cp);</p></td><td width="431" valign="top"><p>不解析</p></td></tr></tbody></table><p>七,子串操作</p><table border="0"><tbody><tr><td width="145" valign="top"><p>s.substr(pos,n);</p></td><td width="419" valign="top"><p>返回string类型字符串,包含从下表pos开始的n个字符</p></td></tr><tr><td width="145" valign="top"><p>s.substr(pos);</p></td><td width="419" valign="top"><p>不解析</p></td></tr><tr><td width="145" valign="top"><p>s.substr();</p></td><td width="419" valign="top"><p>返回s的副本</p></td></tr><tr><td width="145" valign="top"><p>s.c_str();</p></td><td width="419" valign="top"><p>返回s的c风格字符串</p></td></tr></tbody></table><p> </p><p> </p><p> </p><p> </p><p> </p><p>八,string对象修改</p><p>操作函数:(args在参数表定义)</p><table border="0"><tbody><tr><td width="167" valign="top"><p>s.append(args);</p></td><td width="407" valign="top"><p>将args串接在s后面。返回s的引用</p></td></tr><tr><td width="167" valign="top"><p>s.replace(pos,len,args);</p></td><td width="407" valign="top"><p>删除s中从下标开始的len个字符,用args替代之。返回s的引用。</p><p>此版本中,args不能为b2,e2</p></td></tr><tr><td width="167" valign="top"><p>s.replace(b,e,args);</p></td><td width="407" valign="top"><p>删除迭代器b和e标记范围内所有的字符,用args替代之。返回s的引用。</p><p>此版本中,args不能为s2,pos2,len2</p></td></tr></tbody></table><p>args参数定义:</p><table border="0"><tbody><tr><td width="165" valign="top"><p>s2</p></td><td width="403" valign="top"><p>string 类型的字符串s2</p></td></tr><tr><td width="165" valign="top"><p>s2,pos2,len2</p></td><td width="403" valign="top"><p>string类型的字符串s2中从下标pos2开始的len2个字符</p></td></tr><tr><td width="165" valign="top"><p>cp</p></td><td width="403" valign="top"><p>指针cp指向的以空字符结束的数组</p></td></tr><tr><td width="165" valign="top"><p>cp,len2</p></td><td width="403" valign="top"><p>cp指向的数组中的前len2个字符</p></td></tr><tr><td width="165" valign="top"><p>n,'t'</p></td><td width="403" valign="top"><p>字符't'的n个副本</p></td></tr><tr><td width="165" valign="top"><p>b2,e2</p></td><td width="403" valign="top"><p>迭代器b2和e2标记范围内的所有字符</p></td></tr></tbody></table><p>九,string查找操作</p><p>操作函数:(args在参数表格定义,返回类型都是size_type或是string::nops)</p><p class="p0">注意:<span style="font-family: 'Times New Roman';">find</span><span style="font-family: 宋体;">和</span><span style="font-family: 'Times New Roman';">rfind</span><span style="font-family: 宋体;">是串精确查找,而</span><span style="font-family: 'Times New Roman';">find_first</span><span style="font-family: 宋体;">和</span><span style="font-family: 'Times New Roman';">find_last</span><span style="font-family: 宋体;">是单个字符查找。</span></p><table border="0"><tbody><tr><td width="172" valign="top"><p>s.find(args);</p></td><td width="393" valign="top"><p>在s中查找args的第一次出现</p></td></tr><tr><td width="172" valign="top"><p>s.rfind(args);</p></td><td width="393" valign="top"><p>在s中查找args的最后一次出现</p></td></tr><tr><td width="172" valign="top"><p>s.find_first_of(args);</p></td><td width="393" valign="top"><p>在s中查找args的任意字符的第一次出现</p></td></tr><tr><td width="172" valign="top"><p>s.find_last_of(args);</p></td><td width="393" valign="top"><p>在s中查找args的任意字符的最后一次出现</p></td></tr><tr><td width="172" valign="top"><p>s.find_first_not_of(args);</p></td><td width="393" valign="top"><p>在s中查找第一个不属于args的字符</p></td></tr><tr><td width="172" valign="top"><p>s.find_last_not_of(args);</p></td><td width="393" valign="top"><p>在s中查找最后一个不属于args的字符</p></td></tr></tbody></table><p>agrs参数:</p><table border="0"><tbody><tr><td width="174" valign="top"><p>'t',pos</p></td><td width="392" valign="top"><p>从下标pos开始,查找字符't',pos的默认值为0</p></td></tr><tr><td width="174" valign="top"><p>s2,pos</p></td><td width="392" valign="top"><p>从下标pos开始,查找string对象s2,pos默认值为0</p></td></tr><tr><td width="174" valign="top"><p>cp,pos</p></td><td width="392" valign="top"><p>查找cp所指C风格字符串,pos默认值为0</p></td></tr><tr><td width="174" valign="top"><p>cp,pos,n</p></td><td width="392" valign="top"><p>从下标pos开始,查找cp所指数组前n个字符</p></td></tr></tbody></table><p>十,string对象比较(大于返回正数,小于返回负数,等于返回0)</p><table border="0"><tbody><tr><td width="212" valign="top"><p>s.compare(s2);</p></td><td width="365" valign="top"><p>比较s和s2</p></td></tr><tr><td width="212" valign="top"><p>s.compare(pos1,n1,s2);</p></td><td width="365" valign="top"><p>让s中从pos下标开始的n1个字符跟s2做比较</p></td></tr><tr><td width="212" valign="top"><p>s.compare(pos1,n1,s2,pos2,n2);</p></td><td width="365" valign="top"><p>让s中从pos1下标开始的n1个字符与s2中从pos2开始的n2个字符比较</p></td></tr><tr><td width="212" valign="top"><p>s.compare(cp);</p></td><td width="365" valign="top"><p>cp,C风格字符串</p></td></tr><tr><td width="212" valign="top"><p>s.compare(pos1,n1,cp);</p></td><td width="365" valign="top"><p>不解析</p></td></tr><tr><td width="212" valign="top"><p>s.compare(pos1,n1,cp,n2);</p></td><td width="365" valign="top"><p>不解析</p></td></tr></tbody></table></div>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值