首页 > 其他分享 >PAT Basic 1009. 说反话

PAT Basic 1009. 说反话

时间:2023-03-06 20:55:49浏览次数:37  
标签:pChar char PAT 输出 单词 flag 1009 Basic 字符串

PAT Basic 1009. 说反话

1. 题目描述:

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

2. 输入格式:

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

3. 输出格式:

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

4. 输入样例:

Hello World Here I Come

5. 输出样例:

Come I Here World Hello

6. 性能要求:

Code Size Limit
16 KB
Time Limit
400 ms
Memory Limit
64 MB

思路:

首先利用gets()将字符串读入,然后遍历每一个字符,当遇到空格时将其替换为'\0',方便最后的输出(因为C风格字符串以空字符为结束标志)。这里flag用于标志一个单词的开始,创建的pChar字符数组用于记录每个单词的开头位置。

回看这里时发现好像直接倒序遍历字符串就好了,这样就不用记录每个单词的开头位置。

My Code:

#include <stdio.h>

int main(void)
{
    char sentence[81];
    char *pChar[80];
    unsigned char count = 0; // record words number
    unsigned char flag = 0; // to flag a start of word
    
    gets(sentence); // input the string
    
    pChar[0] = sentence;
    while(*pChar[0] != '\0')
    {
        if(*pChar[0] != ' ' && flag == 0)
        {
            pChar[++count] = pChar[0];
            flag = 1;
        }
        else if(*pChar[0] == ' ')
        {
            *pChar[0] = '\0';
            flag = 0;
        }
        
        pChar[0]++;
    }
    
    for(int i = count; i >=1 ; i--)
    {
        printf("%s%c", pChar[i], i==1 ? '\0' : ' ');
    }
    
    return 0;
}

标签:pChar,char,PAT,输出,单词,flag,1009,Basic,字符串
From: https://www.cnblogs.com/tacticKing/p/17185400.html

相关文章

  • Linux操作命令(九)1.comm命令 2.diff命令 3.patch命令
    1、comm用于比较两个有序文件的不同,在使用comm指令之前应先把文件的内容进行排序(sort)显示结果包括3列:第1列为只在第一个文件中找到的行,第2列为只在第二个文件中找......
  • 1009. K-based Numbers
    1009.K-basedNumbershttps://acm.timus.ru/problem.aspx?space=1&num=1009 思路典型dp问题对于n位k位底的数,求不存在连续0出现的数目。设f(i)为i位,最后一位为......
  • fastjsonBasicDataSource链分析
    fastjsonBasicDataSource链分析(fastjson<=1.2.36)此利用链只能应用于fastjson<=1.2.36,在1.2.37版本中,直接去掉了key.toString方法。前置知识:首先我们看一下com.sun.or......
  • PAT 甲级 1009 Product of Polynomials
    Thistime,youaresupposedtofind A×B where A and B aretwopolynomials.InputSpecification:Eachinputfilecontainsonetestcase.Eachcaseoccupi......
  • 《设计模式之禅》Strategy_Pattern--策略模式
    写在前面设计模式之禅这本书也是博主看了几本设计模式的开头才决定以这本书作为学习设计模式的资料。像小傅哥的重学Java设计模式,好处是以真实的项目案例的逻辑来搭配设计模......
  • 高性能 Jsonpath 框架,Snack3 3.2.57 发布
    Snack3,一个高性能的JsonPath框架借鉴了Javascript所有变量由var申明,及Xmldom一切都是Node的设计。其下一切数据都以ONode表示,ONode也即Onenode之意,代表任何......
  • NetCore 之 DispatchProxy
    如何使用Dispatchproxy封装RESTAPI,让API调用更简单。1、创建HttpClientDispathProxy类继承自DispatchProxypublicclassHttpClientDispathProxy<TInterface>:D......
  • 【总结】2023-03-03 Rook Path
    RookPath题意有一个\(n\)行\(m\)列的矩阵,有一只乌鸦在\((x_1,y_1)\)上,它想要去\((x_2,y_2)\)。乌鸦可以飞\(k\)次:假设乌鸦现在在\((x,y)\),它可以选择以下......
  • pat乙级1023 组个最小数
    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>intmain(){inta[10];for(inti=0;i<10;i++){scanf......
  • pat乙级1022 D进制的A+B
    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>#defineN100intmain(){inta,b,d;scanf("%d%d%d",&a,&b,&d);intnum......