[C++]PAT乙级1009. 说反话 (17/20)
/*
1009. 说反话 (20) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。 输入格式:
测试输入包含一个测试用例,
在一行内给出总长度不超过80的字符串。
字符串由若干单词和若干空格组成,
其中单词是由英文字母(大小写有区分)组成的字符串,
单词之间用1个空格分开,
输入保证句子末尾没有多余的空格。 输出格式:
每个测试用例的输出占一行,输出倒序后的句子。 输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
*/ /*
思路1:
0.创建单词临时缓冲区buffer[80],单词数组words[40][80],并初始化,单词计数器words_count=0;
1.输入字符串str;
2.遍历字符串str内字符元素str[i]
若str[i] != ' ': strcat(buffer, str[i]);
否则:strcpy(words[words_count++],buffer), tmp清空; 思路2:
对单词的位置标记下来,然后字符串逆序输出。(注意:对连续空格的位置要处理) 分析:
单词数[0, 40];
*/
#include<iostream>
#include<string.h>
#include<stdio.h>
using namespace std; struct Words{
int wds_start;
int wds_len=0;
}; void print(char *chs, int start,int len){
for(int i=start,length = start+len;i<length;i++){
printf("%c", chs[i]);
}
}
// 1 6/7 10/11/12/13/14
// I am home.
int main(){
char str[80];
Words wds[80];//从下标1开始,sps[0]作为字符串第一个空格点
int words_count=0;//从下标1开始 //init
str[0] = '\0'; //input data
cin.getline(str, 80, '\n');//读取一行字符串,以'\n'作为结束标识符,最多读取80个字符 //printf("string's length:%d\n", strlen(str));//test for(int i=0;i<strlen(str);i++){
if(str[i] == ' '){//空格不处理 } else {//非空格
if(str[i-1] == ' ' || (i==0)){//单词开始,注意:需要对wds[0]位特殊考虑
// printf("[%d] char:%c\n", i, str[i]);//test
words_count++;
wds[words_count].wds_start = i;
}
wds[words_count].wds_len++;
}
} // test
// for(int i=1;i<=words_count;i++){
// printf("words(%d):{start:%d;len:%d}\n", i, wds[i].wds_start, wds[i].wds_len);
// } for(int i=words_count;i>0;i--){
print(str, wds[i].wds_start,wds[i].wds_len);
printf("%s", i==1?"":" ");//最后一个单词不需要空格
}
//printf("*");
return 0;
} /*
参考:https://www.jianshu.com/p/ea251483355c
//C/C++实现 20/20
//思路:从后到前,依次遍历,当找到单词首字符的前的第一个空格时,输出其后的单词,同时将输出的字符以str[i]='\0'截断
#include <stdio.h>
#include <iostream>
#include <string.h> using namespace std; int main(){
char c[82];
gets(c+1);
c[0] = ' ';
for(int i=strlen(c);i>=0;i--){
if(c[i] == ' '){
printf("%s", c+i+1);
c[i] = '\0';
if(i == 0){
printf("%c", '\n');
}
else{
printf("%c", ' ');
}
}
else{
continue;
}
}
return 0;
}
*/
[C++]PAT乙级1009. 说反话 (17/20)的更多相关文章
- PAT乙级 1009. 说反话 (20)
1009. 说反话 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一句英语,要求你编写程序,将句中 ...
- PAT 乙级 1009 说反话 (20) C++版
1009. 说反话 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一句英语,要求你编写程序,将句中 ...
- PAT 乙级 1009.说反话 C++/Java
1009 说反话 (20 分) 题目来源 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词 ...
- PAT 乙级 -- 1009 -- 说反话
题目简述 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是 ...
- PAT乙级1009
1009 说反话 (20 分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干 ...
- PAT 乙级 1009
题目 题目地址:PAT 乙级 1009 题解 本题本身属于比较简单的字符串操作题,但是因为对于string的操作和函数不熟悉导致本题做起来很费劲,需要加强对于string类以及相关方法的理解和熟练程度 ...
- PAT乙级:1072开学寄语(20分)
PAT乙级:1072开学寄语(20分) 题干 下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其 QQ,封其电脑,夺其手机,收其 ipad,断其 wifi,使其百无聊赖,然后,净面 ...
- PAT乙级:1057 数零壹 (20分)
PAT乙级:1057 数零壹 (20分) 题干 给定一串长度不超过 105 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一 ...
- PAT乙级:1082 射击比赛 (20分)
PAT乙级:1082 射击比赛 (20分) 题干 本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军:谁差得最远,谁就是菜鸟.本题给出一系列弹洞的平面坐标(x,y),请你编写程序找 ...
随机推荐
- mysql查看正在执行的sql语句
有2个方法: 1.使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史记录,查看不到.好处是不用设置,不会保存. -- use information_schema; ...
- 【SDOI2008】仪仗队
//裸的欧拉函数//y=kx//求不同的k有多少#include<bits/stdc++.h> #define ll long long #define N 40010 using nam ...
- A1057. Stack
Stack is one of the most fundamental data structures, which is based on the principle of Last In Fir ...
- python之网络编程--锁、信号量、线程、队列
一.线程,可以发现顺序执行比开线程执行时间要短.原因是,一个进程中的多线程处理,由于存在GIL,并且GIL中只能存在一个线程,加上线程又存在切换的问题,所以时间耗得多.想要解决这个问题,是开几个进程, ...
- 关于字符编码,你所需要知道的(ASCII,Unicode,Utf-8,GB2312…)
字符编码的问题看似很小,经常被技术人员忽视,但是很容易导致一些莫名其妙的问题.这里总结了一下字符编码的一些普及性的知识,希望对大家有所帮助. 还是得从ASCII码说起 说到字符编码,不得不说ASCII ...
- django的RestFramework模块的源码分析
一.APIView源码分析 查看源码的前提要知道,找函数方法必须先在自己的类中找,没有再往父类找,一层一层网上找,不能直接按ctrl点击 在我们自己定义的类中没有as_view方法的函数,所以肯定是继 ...
- JQERY EasyUI Tabs 选项卡 自适应浏览器宽度高度 解决方案
<script type="text/javascript"> $(window).resize(function () { $('#tt').tabs({ width ...
- spring的设计模式
spring中用到哪些设计模式 1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了: 2.模版模式,这个也很明显,在各种BeanFacto ...
- Luogu P3181 [HAOI2016]找相同字符 广义$SAM$
题目链接 \(Click\) \(Here\) 设一个串\(s\)在\(A\)中出现\(cnt[s][1]\)次,在\(B\)中出现\(cnt[s][2]\)次,我们要求的就是: \[\sum cnt ...
- 【矢量绘图工具】Adobe Illustrator (AI) CC 2019 for Mac 23.0
以上图片来源于互联网分享,如涉及版权问题请联系作者删除. 文章素材来源:风云社区(www.scoee.com) 下载地址:风云社区(www.scoee.com) [简介] Adobe illust ...