zoukankan      html  css  js  c++  java
  • 一个面试题:翻转句子中单词的顺序

    题目要求:
    输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。(注意处理在输入字符串时的回车字符)
    输入:需反转的字符串
    输出:按照要求反转后的字符串
    示例:例如输入“I am a student.”,则输出“student. a am I”

    自己写的代码如下:仅供参考,如有错误和不妥之处,请大家指正。

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>

    int main(int argc, const char *argv[])
    {
         char *str = NULL;
         int i = 0;
         int k = 0;
         char ch;

         str = (char *)malloc(128*sizeof(char));//给str分配堆空间
         if( str == NULL )
     {
    printf("malloc error ");
    return -1;
     } 
        memset(str, 0, 128);

    //     gets(str);//输入方案一
    #if 1//输入方案2
         while(((scanf("%c", &ch) == 1)) && (ch != 10))//当scanf与ch!=10调换位置后,会出问题,导致'/n'被写入str,调试中用到了下面被//注掉的代码,去掉尾部的'/n'
         {
              *str++ = ch;
              k++;
         }
         //str--;
         //*str = '';
         //str++;
         while(k > 0)//回到str的头部
         {
              str--;
              k--;
         }
    #endif
         while(*str != '')//将字符串中的空格都转换为回车
         {
              if(*str != 32)//与空格的ascii码32比较
              {
                   str++;
              }
              else//是空格则换成''
              {
                   *str = '';
                   i++;
                   str++;
              }
         }
         str--;
         i++;//当字符串中单词数为2时,只有一个空格,故要将空格数+1才与单词数相同
         while(i >= 0)
         {
              while(*str != '')//从后向前寻找单词,单词有i+1个,以''隔开
                   str--;
              str++;
              printf("%s ", str);//打印找到的单词
              str--;
              str--;
              i--;
         }
         printf(" ");
         free(str);
         return 0;
    }


  • 相关阅读:
    AJPFX解析成员变量和局部变量
    AJPFX关于Java Object类常用方法小总结
    AJPFX关于面向对象中的对象初始化整理,综合子父类、代码块等等
    AJPFX总结FileWriter类的write方法
    AJPFX总结java创建线程的三种方式及其对比
    java android中日期时间 问题总结
    安卓开发——ListView控件(初始化ListView、列表刷新、长按添加menu)
    android开发分辨率适配总结
    activity生命周期实例(不同启动模式)
    ViewPage最全解析
  • 原文地址:https://www.cnblogs.com/vonyao/p/3614331.html
Copyright © 2011-2022 走看看