翻转句子中单词的顺序 C语言
输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。
为简单起见,标点符号和普通字母一样处理。
比如将“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语言的更多相关文章
- H面试程序(4):翻转句子中单词的顺序 .
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入“I am a student.”,则输出“stude ...
- 7.翻转句子中单词的顺序[ReverseWordOrderInSentence]
[题目] 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入“I am a student.”,则输出“stud ...
- IT公司100题-10-翻转句子中单词的顺序
问题描述: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变. 句子中单词以空格符隔开.为简单起见,标点符号和普通字母一样处理. 例如输入“Hello world!”,则输出“world ...
- 【c++】计算句子中单词的平均长度
Description 编程输入一行文本,计算这行文本的单词平均长度.假设每个单词用至少一个空格或者标点(英文逗号.句号)隔开.使用C++ string类型. Input 输入一行文本,不包含数字 O ...
- OpenJudge计算概论-单词倒排【把句子内单词的顺序翻转】
/*================================================== 单词倒排 总时间限制: 1000ms 内存限制: 65536kB 描述 编写程序,读入一段英文 ...
- 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 ...
- (C#) 反转字符串,反转一个句子中单词。
这个是非常基本的一道面试题,但是要考虑周全. 首先反转一个字符串: 基本思路是变成Char数组,然后调用C#里面的方法,或者设定两个index,从头,尾向中间遍历,并交换. 方法一: Array.Re ...
- 剑指offer-第六章面试中的各项能力(翻转单词的顺序VS左旋转字符串)
//题目1:翻转单词顺序例如“Hello world!”翻转后为world! Hello. //思路:首先翻转整个字符串,然后再分别翻转每个单词. //题目2:左旋转字符串,是将字符串的前面几个(n) ...
- [LeetCode] Reverse Words in a String 翻转字符串中的单词
Given an input string, reverse the string word by word. For example, Given s = "the sky is blue ...
随机推荐
- Windows Azure 社区新闻综述(#74 版)
欢迎查看最新版本的每周综述,其中包含有关云计算和 Windows Azure 的社区推动新闻.内容和对话.以下是本周的亮点. 文章.视频和博客文章 · Azure CDN:吸取的宝贵经验(10 月 ...
- 开源项目live555学习心得
推荐:伊朗美女找丈夫比找工作难女人婚前一定要看清三件事 × 登录注册 疯狂少男-IT技术的博客 http://blog.sina.com.cn/crazyboyzhaolei [订阅][手机订 ...
- Eclipse快捷键 今天又学会了几个不常用的 收藏了
1.Ctrl+e 打开所有已经打开的文件列表,当你使用Eclipse打开了N多文件的时候,需要找到一个你之前打开过 的文件,是不是就很费 ...
- pre标签 首行会自动换行解决方案
利用pre标签可以 解决文本文档里面的空格及换行在页面上不显示的方案, 自行换行 加 white-space: pre-wrap; word-wrap: break-word; 英文字母换行 word ...
- 关于php析构函数__destruct()的问题
1.背景:在一次输出错误信息,引入Componets\下的ErrorCode的类文件报错,报错的信息是该类找不到:然而那个类文件明明存在的阿,怎么会报错呢? 2.解决过程:看类加载器如何加载该类.通过 ...
- BZOJ 1863: [Zjoi2006]trouble 皇帝的烦恼( 二分答案 )
二分答案..然后从头到尾推一下, 看最后一个能不能取0个和第一个人相同的勋章 ------------------------------------------------------------- ...
- MySql 小问题集合
- 使用MySql通过SpringFramework来自动建表, 服务器用的是Tomcat, 在server.xml和context.xml中均正确配置了jdbc datasource. 编译通过, ...
- 玩2k16
2k是我最喜欢的游戏啦,平时无聊了都会搞两盘.现在到2k16了,玩游戏时碰到一些麻烦,记录便查. 我哥一直说他的电脑玩2K16非常卡,根本玩不了,但是他的电脑配置可比我的高啊,我玩起溜溜地,喊他把配置 ...
- 198,House Robber
一.题目 You are a professional robber planning to rob houses along a street. Each house has a certain a ...
- linux基础随笔
磁盘管理 sda s:磁盘接口的类型(sata scsci sas) d:驱动器(drive) a:(第一块磁盘,同理b第二块磁盘)hda h:ide接口 第一块磁盘的第一个分区:sda1 mount ...