zoukankan      html  css  js  c++  java
  • 字符串翻转和左旋

    问题一:将字符串“abcde”翻转成“edcba”;用start表示字符串的首地址,end表示字符串的最后一个字符的指针。

    void reverse(char* start,char *end)
    {    
        if(start==NULL||end==NULL)
            return ;
        while(start<end)
        {
            char temp=*start;
            *start=*end;
            *end=temp;
            start++;
            end--;
        }
    }

    问题二:将字符串“I am a student.”翻转,但是每个单词内的字符顺序不变,变成“student. a am I”。

    void reversesentence(char *str)
    {
        if(str==NULL)
            return;
        char *begin=str;
        char *end=str;
        while(*end!='')
            end++;
        end--;
        reverse (begin,end);
        
        end=str;
        while(*begin!='')
        {
            if(*begin==' ')
            {
                begin++;
                end++;
            }
            else if(*end==' '||*end=='')
            {
                end--;
                reverse(begin,end);
                begin=++end;
            }
            else
            {
                end++;
            }
        }
    }

    问题三:将字符串"abcdefg"左旋2位成字符串“cdefgab”;将字符串看成是两部分,前两位为第一部分,后面剩下的字符为第二部分。先将这两部分分别翻转,再将整体进行翻转。

    void leftreverse(char *str,int n)
    {
        int len=strlen(str);
        if(str!=NULL&&n>0&&n<len)
        {
            char *start1=str;
            char *end1=str+n-1;
            char *start2=str+n;
            char *end2=str+len-1;
            reverse(start1,end1);
            reverse(start2,end2);
            reverse(start1,end2);
        }
    }
  • 相关阅读:
    横向技术分析C#、C++和Java优劣
    XML数据流主动服务系统的设计与实现
    ASP.NET 状态管理
    Oracle中如何从BasicFile迁移到SecureFile
    让UpdatePanel支持上传文件
    C#和Visual Basic渐行渐远之匿名类型
    wpf 移动变换
    WPF 样式学习总结
    临江仙
    wpf 动画效果
  • 原文地址:https://www.cnblogs.com/beaglebone/p/5877095.html
Copyright © 2011-2022 走看看