zoukankan      html  css  js  c++  java
  • 翻转句子中单词的顺序

    题目:

    输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
    例如输入“I am a student.”,则输出“student. a am I”。

    思路:

    翻转“I am a student.”中所有字符得到“.tneduts a ma I”,再翻转每个单词中字符的顺序得到“students. a am I”,正是符合要求的输出。

     1 void Function( char * str )
     2 {
     3   int len = strlen( str );
     4   Reverse( str, str+len-1 );
     5 
     6   char * left , *right, *p;
     7   p= str;
     8 
     9   while ( *p != '\0' )
    10   {
    11     while ( *p ==' ' && *p!= '\0' )  //过滤掉单词前边的空格,确定单词起始位置,while结束时p指向字母,
    12       p++;
    13     left = p;  // left为单词的起始位置。
    14     while ( *p !=' ' && *p != '\0' )    //确定单词结束位置,结束时p指向空格,
    15        p++;
    16     right = p-1;
    17     Reverse( left, right );  
    18   }
    19 }
    20 void Reverse( char *left, char *right )
    21 {
    22   while ( left < right )
    23   {
    24     tem = *left;
    25     *left = *right;
    26     *right = tem;
    27     left++;
    28     right--;
    29   }
    30 }
  • 相关阅读:
    SpringBoot+EasyCaptcha实现验证码功能
    Spring boot集成Swagger
    Swagger注释API :@ApiModel
    lombok的@Accessors注解3个属性说明
    lombok——@EqualsAndHashCode(callSuper = true)注解的使用
    Springboot集成分页插件PageHelper
    SprinBoot application.properties配置详情之DataSource
    SpringBoot系列之banner.txt (转)
    C语言基础知识汇总
    Byte、KB、MB、GB、TB、PB、EB是啥以及它们之间的进率
  • 原文地址:https://www.cnblogs.com/kevinGaoblog/p/2434905.html
Copyright © 2011-2022 走看看