• Word Reversal (简单字符串处理)


    题目描述:

    For each list of words, output a line with each word reversed without changing the order of the words.


    This problem contains multiple test cases!

    The first line of a multiple input is an integer N, then a blank line followed by N input blocks. Each input block is in the format indicated in the problem description. There is a blank line between input blocks.

    The output format consists of N output blocks. There is a blank line between output blocks.



    Input

    You will be given a number of test cases. The first line contains a positive integer indicating the number of cases to follow. Each case is given on a line containing a list of words separated by one space, and each word contains only uppercase and lowercase letters.


    Output

    For each test case, print the output on one line.


    Sample Input

    1

    3
    I am happy today
    To be or not to be
    I want to win the practice contest


    Sample Output

    I ma yppah yadot
    oT eb ro ton ot eb
    I tnaw ot niw eht ecitcarp tsetnoc

     1 //题意描述:输入一个字符串,不改变单词的顺序,将每个单词反转输出
     2 //解题思路: 用gets读入,去头去尾后,判断出一个单词,将其复制到另一个字符串中逆序输出,直至字符串尾即可 
     3 #include<stdio.h>
     4 #include<ctype.h>
     5 #include<string.h>
     6 
     7 void pri(char p[])
     8 {
     9     int i,l=strlen(p);
    10     for(i=0;i<l;i++)
    11         printf("#%c",p[i]);
    12     printf("
    ");
    13 }
    14 
    15 int main()
    16 {
    17     int T,r,i,j,k;
    18     char s[5001],*p=NULL,s2[101];
    19     scanf("%d",&T);
    20     while(T--)
    21     {
    22         
    23         scanf("%d",&r);
    24         getchar();
    25         while(r--)
    26         {
    27             gets(s);
    28             int l=strlen(s);
    29             s[l]='';
    30             //pri(s);
    31             
    32             p=s;
    33             while(!isalpha(*p))
    34             {
    35                 p++;
    36             }
    37             //pri(p);
    38             
    39             l=strlen(p);
    40             for(i=l-1;i>=0;i--)
    41                 if(isalpha(p[i]))
    42                     break;
    43             p[i+1]=' ';
    44             p[i+2]='';
    45             //pri(p);
    46             
    47             l=strlen(p);
    48             for(i=0;i<l;)
    49             {
    50                 j=0;
    51                 while(isalpha(p[i]))
    52                 {
    53                     s2[j++]=p[i++];
    54                 }
    55                 s2[j]='';
    56                 
    57                 for(k=j-1;k>=0;k--)
    58                     printf("%c",s2[k]);
    59                 
    60                 if(i==l-1)
    61                 printf("
    ");
    62                 else
    63                 printf(" ");
    64                 i++;
    65             }
    66         }
    67         if(T != 0)
    68         printf("
    ");
    69     }
    70     return 0;
    71 } 
    72 //易错分析
    73 //gets之前要吃掉换行 
  • 相关阅读:
    == 和 equals 的区别是什么?
    String 类的常用方法都有那些?
    报表工具对比选型系列—多样性数据源支持度
    报表工具选型对比系列
    报表工具选型对比系列
    web 端怎么实现套打发票、快递单等套打票据功能?
    如何集成一个第三方报表,权限怎么控制
    BI 报表工具如何与 springBoot 框架集成
    在报表中可以使用 ECharts 做图形展现吗?
    Tableau 等常见 BI 工具能集成到 java 项目中吗
  • 原文地址:https://www.cnblogs.com/wenzhixin/p/8428593.html
Copyright © 2020-2023  润新知