1009. 说反话 (20)

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。

输出格式:每个测试用例的输出占一行,输出倒序后的句子。

输入样例:

Hello World Here I Come

输出样例:

Come I Here World Hello

方法一:
程序说明:
  1.输入的字符串存储在数组str[]中,数组pos[]用来存储每个空格所在的位置,count用来存储单词个数,初始值为1;strlen()函数求出字符串的总长度
  2.知道每个空格所在的位置、字符串总长度和单词个数即可打印出相应的单词 C++ 代码如下:
 #include <bits/stdc++.h>
using namespace std; int main() {
char str[];
int pos[];
int count=,j=,i,len;
gets(str);
len=strlen(str);
for(i=;i<len;i++){
if(str[i]==' '){
count++;
pos[j]=i;
j++;
}
}
if(count==){
for(i=;i<len;i++){
cout<<str[i];
}
system("pause");
return ;
}
while(count!=){
for(i=pos[j-]+;i<len;i++)
cout<<str[i];
len=pos[j-];j--;count--;
if(count!=) cout<<' ';
}
for(i=;i<pos[];i++)
cout<<str[i];
system("pause");
return ;
}

C++ Code 1

方法二:使用strtok()函数
  strtok()函数说明:
    1.包含在 #include <string.h> 中
    2.函数原型:
char* strtok (char* str,constchar* delimiters );    
    3.函数功能:以传入的 delimiters为切割符对 str 分割成一个个子串,并返回指向被分割出片段的指针。当 str 中的字符查找到末尾时,返回NULL;
     如果查不到 delimiters 所标示的字符,则返回当前 strtok 的字符串的指针
    4.函数参数:
      str:在第一次被调用的时候 str 为被切割字符串的首地址,在后面调用的时候为NULL
      delimiters:将传入的字符当做切割符
C++ 代码如下:
 #include <bits/stdc++.h>
using namespace std; int main(){
char str[];
int flag=;
char* result;
const char *ch=" ";
vector<char *> word;
gets(str);
result=strtok(str,ch);
while(result!=NULL){
word.push_back(result);
result=strtok(NULL,ch);
}
for(int i=word.size()-;i>=;i--){
if(flag==){
cout<<word[i];
flag=;
}
else cout<<' '<<word[i];
}
system("pause");
}

C++ Code 2

【PAT】1009. 说反话 (20)的更多相关文章

  1. PAT 1009 说反话 (20)(代码)

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

  2. PAT 1009. 说反话 (20) JAVA

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

  3. PAT 1009. 说反话 (20)

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

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

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

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

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

  6. PAT-乙级-1009. 说反话 (20)

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

  7. PAT (Basic Level) Practise (中文)- 1009. 说反话 (20)

    http://www.patest.cn/contests/pat-b-practise/1009 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在 ...

  8. PAT Basic 1009 说反话 (20 分)

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

  9. PAT (Basic Level) Practice (中文)1009 说反话 (20分)

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

随机推荐

  1. 杨辉三角之c实现任意行输出

    #include<stdio.h> #include<stdlib.h> int** fmalloc(int n){ int** array; //二维指针 int i; ar ...

  2. OD脚本指令集

    声明: 1.本指令集搜集自各论坛.博客,欢迎补充讨论 OD脚本指令集 在后面的文档中, “源操作数” 和 “目的操作数”表示以下含义: - 十六进制常数,既没有前缀也没有后缀. (例如:是00FF, ...

  3. hdu4699-Editor

    Sample Input 8 I 2 I -1 I 1 Q 3 L D R Q 2 Sample Output 2 3 发现IDLR四种操作都在光标处发生,且操作完成后光标至多移动1个位置,根据这种“ ...

  4. DLL初试

    环境: VC++6.0 步骤: 1.建立一个WIN32 DYNAMIC-LINK LIBRARY工程,编写CPP文件,文件内容例如: #include "stdafx.h" #in ...

  5. 认识单点登录cas

    么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分 1.登录 相比于单 ...

  6. 在Unity中实现屏幕空间反射Screen Space Reflection(3)

    本篇讲一下相交检测的优化.有两个措施. 线段相交检测 之前的检测都是检测光线的终点是否在物体内.我们可以尝试检测光线的线段是否与物体相交. 比如说有一个非常薄的物体,光线差不多垂直于它的表面.如果用普 ...

  7. Android 搭建Linux系统

    本文精心从网上搜罗出相关资料并整理,含有大量外部链接 安卓手机上安装linux大致分为两种方案 一.使用Linux Deploy 二.使用 Linux on Android 本文对Linux Depl ...

  8. TP中搜索条件

  9. 深入理解Spring系列之三:BeanFactory解析

    转载 https://mp.weixin.qq.com/s?__biz=MzI0NjUxNTY5Nw==&mid=2247483824&idx=1&sn=9b7c2603093 ...

  10. 消息队列ActiveMQ的使用详解

    通过上一篇文章 <消息队列深入解析>,我们已经消息队列是什么.使用消息队列的好处以及常见消息队列的简单介绍. 这一篇文章,主要带大家详细了解一下消息队列ActiveMQ的使用. 学习消息队 ...