zoukankan      html  css  js  c++  java
  • 按单词逆序句子(含标点)

    主要思想:先写出单词逆序的函数,再写整个句子逆序的函数(在其中查找单词,找到后调用单词逆序的函数逆序,最后将整个句子逆序)。

     
    程序缺点:只能识别几个常用的标点符号
     
    源代码及测试程序:
    //给定一个字符串,按单词将该字符串逆序,含标点     
    #include<stdio.h>     
        
    //start 和 end 之间逆序的函数  
    void reverse_word(char *start, char *end)   
    {    
        while(start < end)   
        {    
            *start = *start ^ *end;    
            *end = *start ^ *end;    
            *start = *start++ ^ *end--;    
        }    
    }    
       
    char *reverse_sentence(char *str)   
    {    
        char *start = str;    
        char *end = str;    
        while(*end != '')   
        {    
            if(*end==' ' || *end=='!' || *end==',' || *end=='.' || *end=='?')//查到一个单词   
            {    
                if(start < end)//只有一个字母的单词不逆序  
                    reverse_word(start, end-1);    
       
                while(*end==' ' || *end=='!' || *end==',' || *end=='.' || *end=='?')  
                    end++; //指向下一个单词首字符     
       
                start = end;    
            }    
            else   
                end++;    
        }    
        reverse_word(str, end-1);//整个句子逆序     
         
        return str;    
    }    
         
    int main(int argc, char *argv[])   
    {    
        char str[] = "Hello, I am glad to see you!";  
       
        printf("%s
    ", str);    
        printf("%s
    ", reverse_sentence(str));    
         
        return 0;    
    }
    

      

  • 相关阅读:
    RabbitMQ:六、网络分区
    RabbitMQ:五、高阶
    RabbitMQ:四、跨越集群
    数据结构:红黑树
    RabbitMQ:三、进阶
    面对对象多态的异常
    面向对象三大特征---多态
    面对对象继承的优点和缺点
    面对对象当中的代码块
    面对对象this关键字
  • 原文地址:https://www.cnblogs.com/starainDou/p/4716167.html
Copyright © 2011-2022 走看看