24小时热门版块排行榜    

CyRhmU.jpeg
查看: 290  |  回复: 2
【奖励】 本帖被评价1次,作者木叶清风增加金币 0.5
当前主题已经存档。

木叶清风

木虫 (正式写手)


[资源] 【原创】字符串逆序的三种方法【已搜无重复】

方法一:
1、        用一个字符数组调用cin.getline()接收字符串;
2、        用循环把字符数组里面的字符前后交换
3、        代码:
#include
#include
#include
using namespace std;

int main()
{
  char a[50];
  memset(a,0,sizeof(a));
  int i=0,j;
  char t;
  cin.getline(a,50,'\n');
  for(i=0,j=strlen(a)-1;i   {
   t=a;
      a=a[j];
   a[j]=t;
  }
  cout< cin.get();
return 0;
}
4、该方法的缺点:字符数组大小是固定的,如果输入字符串长度超过字符数组的大小,将只能处理字符数组大小长度的子字符串。
方法二:
1、        用string型变量接收一个字符串;
2、        用循环把字符串中的字符位置前后倒置;
3、        代码:
#include
#include
#include
using namespace std;

int main()
{
          string str;
        getline(cin,str);
        for(int i=0,j=str.size()-1;i         {
                char t = str;
                str = str[j];
                str[j] = t;
        }
       
        cout<         cin.get();
        return 0;
}
4、        优缺点:能够接收不知道长度的字符串,但是调用了string,程序会稍大。
方法三:
1、        用string型变量接收一个字符串;
2、        调用STL的reverse(first,last)来反转字符串;
3、        代码:
#include
#include
#include
using namespace std;

int main()
{

        string str;
        getline(cin,str);
        reverse(str.begin(),str.end());
        cout<         cin.get();
return 0;
}
4、优缺点:该方法的效率高,代码简洁,但是程序可能会稍大。

[ Last edited by bslt on 2009-5-18 at 16:17 ]
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

techhalf

金虫 (小有名气)


★★★ 三星级,支持鼓励

学习编程好例子,不错,基本功要扎实。
2楼2008-07-27 20:44:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

daijiajia1860

铁虫 (初入文坛)


用一个栈实现不就好了吗
3楼2009-03-29 22:12:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 木叶清风 的主题更新
☆ 无星级 ★ 一星级 ★★★ 三星级 ★★★★★ 五星级
普通表情 高级回复(可上传附件)
信息提示
请填处理意见