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 }
  • 相关阅读:
    使用express+multer实现node中的图片上传
    利用H5构建地图和获取定位地点
    移动端开发基础 干货分享
    关于angularJS的一些用法
    你好 JSONP !!!!
    CentOS7使用Alien将RPM从DE转换为DEB和DEB转换为RPM包
    [Windows] visio2019破解激活
    python---九九乘法表代码
    HTTP 请求方式: GET和POST的比较
    win10WLAN没有有效的ip配置
  • 原文地址:https://www.cnblogs.com/kevinGaoblog/p/2434905.html
Copyright © 2011-2022 走看看