zoukankan      html  css  js  c++  java
  • 字符串反转——按字符&按字

    1.字符串按字节反转,即字符串abcdef,反转为fedcba。

    #include <iostream>
    using namespace std;
    
    char *reverse(char *str)
    {
        if(NULL==str)
            return NULL;
    
        char *begin=str;
        char *end=str;
        
        while(*end!='\0')//让end指向最后一个字符
            end++;
        end--;
        while(begin<end)
        {
            char tmp=*begin;
            *begin=*end;
            *end=tmp;    
            begin++;//注意!指针移动!
            end--;
        }
        return str;
    }
    int main()
    {
        char s[]="abcdefg";
        char *p=reverse(s);
        cout<<p<<endl;
        return 0;
    }

    2.字符串按字反转,即字符串"how are you",反转为"you are how"。

    方法一:

    #include <iostream>
    using namespace std;
    
    void Reverse(char *begin,char *end)
    {
        if(NULL==begin||NULL==end)
            return;
        while(begin<end)
        {
            char tmp=*begin;
            *begin=*end;
            *end=tmp;
            
            begin++;//不要忘了!
            end--;
        }
        
    }
    
    char *ReversSentence(char *str)
    {    
        if(NULL==str)
            return NULL;
        //将整个字符串按字节反转    
        char *pBegin=str;
        char *pEnd=str;
        while(*pEnd!='\0')
            pEnd++;
        pEnd--;
        Reverse(pBegin,pEnd);
        //将每个字反转
        //pBegin=str;
        pEnd=str;
        while(*pBegin!='\0')
        {
            if(*pBegin==' ')//if和else if 这两个条件的顺序不能颠倒。
            {
                pBegin++;
                pEnd++;
                continue;
            }
            else if(*pEnd==' '||*pEnd=='\0')
            {    
                Reverse(pBegin,--pEnd);//此时pEnd指向某个字的最后一个字符
                pBegin=++pEnd;//此时pBegin指向' '空格的下一个字符
            }
             
            else    
                pEnd++;
        }
        
        return str;
    }
    int main()
    {
        char s[]="how are you";
        char *p=ReversSentence(s);
        cout<<p<<endl;
        return 0;
    }

    方法二:http://blog.csdn.net/jianxiong8814/article/details/1595110

  • 相关阅读:
    xp下双开3389源码
    批处理加密解密原理
    Durango框架开源
    细说PHP5.3.4变量的引用赋值
    svnversion
    sqlite 的使用
    message日志_默认是一周一个日志,保存4周
    Smartmontool 使用
    NETRA之数据库处理
    mysql 日志转
  • 原文地址:https://www.cnblogs.com/fly1988happy/p/2703557.html
Copyright © 2011-2022 走看看