输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。

为简单起见,标点符号和普通字母一样处理。

比如将“I am a student”转化为"student a am I"。

#include <stdio.h>
#include <string.h>
//逆转字符串
char* Reverse(char *str, int len)
{
if(str == NULL || len <= 0)
return str;
char *pLast = str + len - 1;
char *pBegin = str;
while(pBegin < pLast)
{
char temp = *pBegin;
*pBegin = *pLast;
*pLast = temp;
++ pBegin;
-- pLast;
}
return str;
} //逆转句子
char * ReverseSentence(char *str)
{
if(str == NULL)
{
return str;
}
//逆转整个句子
Reverse(str, strlen(str));
//逆转各个单词
char *pBegin = str;
char *pEnd = str;
while(*pEnd != '\0')
{
while(*pEnd != '\0' && *pEnd != ' ')
++pEnd;
//逆转单词
Reverse(pBegin, pEnd - pBegin);
if(*pEnd == '\0')
{
break;
}
++pEnd;
pBegin = pEnd;
}
return str;
} int main()
{
char str1[] = "";
char str2[] = "a";
char str3[] = "abc";
char str4[] = "I am a student";
if(strcmp(ReverseSentence(str1), "") == 0
|| strcmp(ReverseSentence(str2), "a") == 0
|| strcmp(ReverseSentence(str3), "abc") == 0
|| strcmp(ReverseSentence(str4), "student a am I") == 0
)
{
printf("reverse sentence ok\n");
}
return 0;
}

翻转句子中单词的顺序 C语言的更多相关文章

  1. H面试程序(4):翻转句子中单词的顺序 .

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

  2. 7.翻转句子中单词的顺序[ReverseWordOrderInSentence]

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

  3. IT公司100题-10-翻转句子中单词的顺序

    问题描述: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入“Hello world!”,则输出“world ...

  4. 【c++】计算句子中单词的平均长度

    Description 编程输入一行文本,计算这行文本的单词平均长度.假设每个单词用至少一个空格或者标点(英文逗号.句号)隔开.使用C++ string类型. Input 输入一行文本,不包含数字 O ...

  5. OpenJudge计算概论-单词倒排【把句子内单词的顺序翻转】

    /*================================================== 单词倒排 总时间限制: 1000ms 内存限制: 65536kB 描述 编写程序,读入一段英文 ...

  6. 557. Reverse Words in a String III 翻转句子中的每一个单词

    [抄题]: Given a string, you need to reverse the order of characters in each word within a sentence whi ...

  7. (C#) 反转字符串,反转一个句子中单词。

    这个是非常基本的一道面试题,但是要考虑周全. 首先反转一个字符串: 基本思路是变成Char数组,然后调用C#里面的方法,或者设定两个index,从头,尾向中间遍历,并交换. 方法一: Array.Re ...

  8. 剑指offer-第六章面试中的各项能力(翻转单词的顺序VS左旋转字符串)

    //题目1:翻转单词顺序例如“Hello world!”翻转后为world! Hello. //思路:首先翻转整个字符串,然后再分别翻转每个单词. //题目2:左旋转字符串,是将字符串的前面几个(n) ...

  9. [LeetCode] Reverse Words in a String 翻转字符串中的单词

    Given an input string, reverse the string word by word. For example, Given s = "the sky is blue ...

随机推荐

  1. Session()

    如何使用 Session Java Api 只给我们一种方式来 获取 当前会话相关的 session: HttpSession session = request.getSession(); //或 ...

  2. centos 环境下monolog+php 方案

    1.在项目中,日志系统有多重要详细所有程序员都知道,monolog就是一个最好的解决方案,有各种级别,各种日志存储方式,具体可以上monolog官方了解http://monolog.ow2.org/ ...

  3. CodeIgniter中的session处理

    在CI中你可以这样很简单地装载library:     $this->load->library('newclass');    注意系统中会有两个library目录,一个是system/ ...

  4. Lua学习笔记5:类及继承的实现

    -- Lua中类的实现 -------------------------------- 基类 ---------------------------- classBase = {x = 0,y = ...

  5. 指尖上的电商---(2)Solr全文搜索引擎的准备工作

    Solr是一个基于Lucene的全文搜索引擎.提供了更丰富的搜索语言.更灵活的配置.更高的查询效率. 一句话.与Lucene相比.有过之而无不及.这一节里, 主要谈论两个知识点:Jdk的安装和Tomc ...

  6. HDU Computer Transformation1041 题解

    Problem Description A sequence consisting of one digit, the number 1 is initially written into a com ...

  7. 使CSS3样式在IE里面有效果

    1. 下载ie-css3.htc文件 2. 当前元素一定要有定位属性,像是position:relative或是position:absolute属性. 3. z-index值一定要比周围元素的要高 ...

  8. STL之stack(栈)

    栈(statck)这种数据结构在计算机中是相当出名的.栈中的数据是先进后出的(First In Last Out, FILO).栈只有一个出口,允许新增元素(只能在栈顶上增加).移出元素(只能移出栈顶 ...

  9. background-position 个人理解

    background-position这里先说像素  百分比比较复杂background-position:xxpx xxpx  这里第一个值指的是x轴坐标  第二个值是y轴坐标这里使用的坐标系和数学 ...

  10. 一些安全相关的HTTP响应头

    转:http://www.2cto.com/Article/201307/230740.html 现代浏览器提供了一些安全相关的响应头,使用这些响应头一般只需要修改服务器配置即可,不需要修改程序代码, ...