/*
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)的更多相关文章

  1. PAT乙级 1009. 说反话 (20)

    1009. 说反话 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一句英语,要求你编写程序,将句中 ...

  2. PAT 乙级 1009 说反话 (20) C++版

    1009. 说反话 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一句英语,要求你编写程序,将句中 ...

  3. PAT 乙级 1009.说反话 C++/Java

    1009 说反话 (20 分) 题目来源 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词 ...

  4. PAT 乙级 -- 1009 -- 说反话

    题目简述 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出.       输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是 ...

  5. PAT乙级1009

    1009 说反话 (20 分)   给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干 ...

  6. PAT 乙级 1009

    题目 题目地址:PAT 乙级 1009 题解 本题本身属于比较简单的字符串操作题,但是因为对于string的操作和函数不熟悉导致本题做起来很费劲,需要加强对于string类以及相关方法的理解和熟练程度 ...

  7. PAT乙级:1072开学寄语(20分)

    PAT乙级:1072开学寄语(20分) 题干 下图是上海某校的新学期开学寄语:天将降大任于斯人也,必先删其微博,卸其 QQ,封其电脑,夺其手机,收其 ipad,断其 wifi,使其百无聊赖,然后,净面 ...

  8. PAT乙级:1057 数零壹 (20分)

    PAT乙级:1057 数零壹 (20分) 题干 给定一串长度不超过 105 的字符串,本题要求你将其中所有英文字母的序号(字母 a-z 对应序号 1-26,不分大小写)相加,得到整数 N,然后再分析一 ...

  9. PAT乙级:1082 射击比赛 (20分)

    PAT乙级:1082 射击比赛 (20分) 题干 本题目给出的射击比赛的规则非常简单,谁打的弹洞距离靶心最近,谁就是冠军:谁差得最远,谁就是菜鸟.本题给出一系列弹洞的平面坐标(x,y),请你编写程序找 ...

随机推荐

  1. ocr智能图文识别 tess4j 图文,验证码识别

    最近写爬虫采集数据,遇到网站登录需要验证码校验,想了想有两种解决办法 1,利用htmlunit,将验证码输入到swing中,并弹出一个输入框,手动输入验证码,这种实现方式,如果网站需要登录一次可以使用 ...

  2. react-native中的TextInput

    TextInput是一个允许用户输入文本的基础组件.它有一个名为onChangeText的属性,此属性接受一个函数, 而此函数会在文本变化时被调用.另外还有一个名为onSubmitEditing的属性 ...

  3. c++ stl sort

    两者相等时,必须为false. 满足拟序. 群里大佬666.

  4. 类图uml

    画类图或时序的软件类图astah-community-6_9_0-b4c6e9-jre-setup        先写总体架构再写流程图 即先写类图再流程图 b ^ | a a继承b   工具类是us ...

  5. 计算机基础:计算机网络-chapter3

    数据链路层,给两个相邻节点传输数据. 数据链路:物理链路+通信协议. 数据链路层使用的信道主要有点对点信道和广播信道两种. 一.点对点信道的PPP协议: 用三层模型来研究数据链路层,不管在哪一链路上的 ...

  6. HTTP协议相关原理

    HTTP 的全称是 Hyper Text Transfer Protocol,中文名叫做超文本传输协议 HTTP协议是用于从网络传输超文本数据到本地浏览器的传送协议,它能保证传送高效而准确地传送超文本 ...

  7. Luogu P3868 [TJOI2009]猜数字

    题目链接 \(Click\) \(Here\) 中国剩余定理的板子.小心取模. #include <bits/stdc++.h> using namespace std; const in ...

  8. 使用docker-compose部署nginx

      1.新建docker-compose.yml文件,文件的基本模板如下:(由于yml格式比较严格,注意空格缩进) version: '2.0' services: nginx: restart: a ...

  9. Druid数据源配置

    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-met ...

  10. 访问内网(https,udp)

    安装teamview 客户端. 安装vpn驱动(这里的VPN应该是A主机与B客户端分别连接上了teamview的服务器,但是本身不是局域 网,所以不能直接访问A的局域网的其他主机) 主机端A,安装主机 ...