标题:将字符串中单词逆置后输出
只看楼主
xishui777
Rank: 2
等 级:论坛游民
帖 子:53
专家分:94
注 册:2010-8-17
结帖率:100%
已结贴  问题点数:2 回复次数:2 
将字符串中单词逆置后输出
#include<iostream>
using namespace std;
int main()
{
    //整体翻转
     char a[]="how are you";
     char *p1,*p2;
     p1=p2=a;
     while(*p2!='\0')
     {
       p2++;
     }
     p2--;
     while(p1<=p2)
     {
       char k;
       k=*p1;
       *p1=*p2;
       *p2=k;
       p1++;p2--;
     }
     //单词翻转
          p1=p2=a;
     while(*p2!='\0')
     {
        if(*p2==' ')
          {
            char *p;
            p=p2-1;
            while(p1<=p)
            {
               char m;
               m=*p1;*p1=*p;*p=m;
               p1++;p--;
            }
            p1=p2+1;
          }
          else
          p2++;
     }
         p2--;
        while(p1<=p2)
        {
          char w;
          w=*p1;*p1=*p2;*p2=w;
          p1++;p2--;
        }
     puts(a);
     system("pause");
     return 0;
}
例如:how are you变成you are how
搜索更多相关主题的帖子: 单词 字符 置后 输出 
2010-08-17 16:23
dianzi1987
Rank: 2
等 级:论坛游民
帖 子:5
专家分:24
注 册:2009-9-18
得分:1 
用strtok比较方便点
2010-08-17 17:09
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:1 
是这么个翻转法啊!
用 string stream 可能可以干这事。一个词一个词地读到一个 vector 里,然用逆向迭代器输出就行了。
2010-08-18 01:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-316001-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030922 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved