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("\n");
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]='\0';
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]='\0';
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]='\0';
56                 
57                 for(k=j-1;k>=0;k--)
58                     printf("%c",s2[k]);
59                 
60                 if(i==l-1)
61                 printf("\n");
62                 else
63                 printf(" ");
64                 i++;
65             }
66         }
67         if(T != 0)
68         printf("\n");
69     }
70     return 0;
71 } 
72 //易错分析
73 //gets之前要吃掉换行 

 

 

转载于:https://www.cnblogs.com/wenzhixin/p/8428593.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值