zoj1151 I - Word Reversal 【简单字符串处理】【第三周练习】【the first day】
2018-02-01 15:25
399 查看
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
题意:将每组字符串的单词一一翻转输出,t组样例,每组样例包括n行字符串,每组样例间有空行。
思路:确定每个单词在字符数组中的起始位置和终止位置,将该区间内的单词翻转后存入数组,具体细节见注释。
总结:老师应该是看我们被上次的练习打击的太惨了,所以这次放一道签到题在这里吧,细心一点应该可是实现1A,可是我就是那个不细心的人呐,好好读题行不行,每组样例之间的空行呢!!
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
题意:将每组字符串的单词一一翻转输出,t组样例,每组样例包括n行字符串,每组样例间有空行。
思路:确定每个单词在字符数组中的起始位置和终止位置,将该区间内的单词翻转后存入数组,具体细节见注释。
总结:老师应该是看我们被上次的练习打击的太惨了,所以这次放一道签到题在这里吧,细心一点应该可是实现1A,可是我就是那个不细心的人呐,好好读题行不行,每组样例之间的空行呢!!
#include<stdio.h> #include<string.h> #define N 1000 struct node{ char str ; }sum[N+10]; void Reverse(int start,int end,int number) { char s ; int j = 0; for(int i = end; i >= start; i--) s[j++] = sum[number].str[i]; s[j] = '\0';//将从start开始到end结束的字符段翻转 for(int i = start,k= 0; i <= end&&s[k]!='\0'; i ++,k++) sum[number].str[i] = s[k];//翻转后存入原字符组 return; } int main() { int t,l,n,start,end,flag=0; scanf("%d",&t); while(t--) { if(flag) printf("\n");//认真读题!! flag = 1; scanf("%d",&n); getchar(); for(int i = 0; i < n; i ++) gets(sum[i].str); for(int i = 0; i < n; i ++) { start = end=0; while(sum[i].str[start]!='\0') { if(sum[i].str[end]==' '||sum[i].str[end] =='\0')//遇到空格或者终止符说明为一个单词 { Reverse(start,end-1,i);//翻转函数 if(end == '\0') break;//字符串结尾直接跳出循环 start = end+1;//跳过空格开始翻转下一个字符段 } end ++; } } for(int i = 0; i < n; i ++) puts(sum[i].str); } return 0; }
相关文章推荐
- zoj1151 zoj1295 Word Reversal 字符串的简单处理
- Word Reversal (简单字符串处理)
- zoj1151 zoj1295 Word Reversal 字符串的简单处理
- hdu 1068 D - Girls and Boys【匈牙利算法】【第三周练习】【the first day】
- 代码练习 简单文件读写 字符串 数组的处理 list Dictionary
- ZOJ 1151 Word Reversal反转单词 (string字符串处理)
- ZOJ 1151 Word Reversal反转单词 (string字符串处理)
- hdu 1004 Let the Balloon Rise ( 字符串简单处理)
- Word Reversal 【字符串处理】
- poj1486 G - Sorting Slides【二分匹配唯一边】【第三周练习】【the fifth day】
- HDU1004 Let the ballon raise(水题, 字符串的处理)(map简单用法)
- poj 1062 F - Best Deal【dijstra】【第三周练习】【the third day】
- hdu 2265 Encoding The Diary (基础的字符串处理,巨简单)
- UVA - 1368 DNA Consensus String :简单字符串处理
- THE First Individual Project - Word frequency program
- = Day 1 = 《The first english diary》
- the first day
- ZJU_PAT_basic level_1014 字符串的简单处理与临界值的判定
- the first day
- JAVA蓝桥杯(2)字符串的简单处理