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.

对于每个单词列表,输出一个每个单词颠倒的行而不改变单词的顺序。

这个问题包含多个测试用例!

多输入的第一行是整数N,然后是空行,后面是N个输入块。 每个输入块都采用问题描述中指定的格式。 输入块之间有空行。

输出格式由N个输出块组成。 输出块之间有空行。

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

题解:比赛的时候自己想了半天想用栈来模拟这个过程,最后结果是算出来了但是提交的时候Presentation Error(输出格式错误),后来看了别人的blog发现了一些新的操作

1.string中有一个“+”操作就是将两个字符拼接在一起,用在这一道题真的很好

2.getline()函数(具体怎么用还不是太清楚*—*)

此函数会一次读取多个字符(包括空白字符)。它以指定的地址为存放第一个读取的字符的位置,依次向后存放读取的字符,直到读满N-1个,或者遇到指定的结束符为止。若不指定结束符,则默认结束符为'\n'。其语法为:
cin.getline(字符指针(char*),字符个数N(int),结束符(char));
例: #include <iostream>
using namespace std;
int main()
{
char a[30];
cin.getline(a, 10);
for( int i=0; i<10; i++ )
cout << a[i] << " ";
return 0;
}
输入:1234567890123
输出:1 2 3 4 5 6 7 8 9 _ (第10位存放字符串结束符'\0')

  来源:百度百科

我的代码

 1 #include<cstdio>
2 #include<stack>
3 #include<cstring>
4 using namespace std;
5
6 int main()
7 {
8 int t, p;
9 int num;
10 char a[500000];
11 stack<char> s;
12 while(~scanf("%d", &t))
13 {
14 getchar();
15 while(t--)
16 {
17 scanf("%d", &p);
18 getchar();
19 while(p--)
20 {
21 gets(a);
22 int len = strlen(a);
23 for(int i = 0; i < len; i++)
24 {
25 if(a[i] != ' ')
26 s.push(a[i]);
27 else
28 {
29 num = s.size();
30 for(int j = 0; j < num; j++)
31 {
32 printf("%c", s.top());
33 s.pop();
34 }
35 printf(" ");
36 }
37 }
38
39 num = s.size();
40 for(int i = 0; i < num; i++)
41 {
42 printf("%c", s.top());
43 s.pop();
44 }
45 printf("\n");
46 }
47
48 }
49 }
50 return 0;
51 }

AC代码:

 1 #include<iostream>
2 #include<stdio.h>
3 #include<string.h>
4
5 using namespace std;
6
7 int main()
8 {
9 int n;
10 string s;
11
12 scanf("%d", &n);
13 while(n--)
14 {
15 int t;
16 scanf("%d", &t);
17 getchar();
18 while(t--)
19 {
20 getline(cin, s);
21 int l = s.length();
22 string ss = "";
23
24 for(int i = 0; i < l; i++)
25 {
26 if(s[i] != ' ')
27 ss = s[i] + ss;
28 else
29 {
30 cout << ss << " ";
31 ss = "";
32 }
33 }
34 cout << ss << endl;
35 }
36
37 if(n > 0)
38 cout << endl;
39 }
40
41 return 0;
42 }

D - D ZOJ - 1151 (字符串操作)的更多相关文章

  1. ZOJ 3603字符串操作

    解题思路:找到公共子串然后升序输出 坑的地方就在于输入是存在相同字母的 #include <stdio.h> #include <algorithm> #include < ...

  2. python学习笔记(字符串操作、字典操作、三级菜单实例)

    字符串操作 name = "alex" print(name.capitalize()) #首字母大写 name = "my name is alex" pri ...

  3. shell编程常用的截取字符串操作

    1.          常用的字符串操作 1.1.           替换字符串:$ echo ${var/ /_}#支持正怎表达式 / /表示搜索到第一个替换,// /表示搜索到的结果全部替换. ...

  4. php字符串操作集锦

    web操作, 主要就是对字符文本信息进行处理, 所以, 字符串操作几乎占了很大一部分的php操作.包括 注意strstr 和 strtr的区别? 前者表示字符串查找返回字符串,后者表示字符串中字符替换 ...

  5. java 字符串操作和日期操作

    一.字符串操作 创建字符串 String s2 = new String("Hello World"); String s1 = "Hello World"; ...

  6. [No000078]Python3 字符串操作

    #!/usr/bin/env python3 # -*- coding: utf-8 -*- '''Python 字符串操作 string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分 ...

  7. Python 字符串操作及string模块使用

    python的字符串操作通过2部分的方法函数基本上就可以解决所有的字符串操作需求: python的字符串属性函数 python的string模块 1.字符串属性方法操作: 1.>字符串格式输出对 ...

  8. C语言字符串操作总结大全

    1)字符串操作 strcpy(p, p1)  复制字符串  函数原型strncpy(p, p1, n)   复制指定长度字符串  函数原型strcat(p, p1)   附加字符串  函数原型strn ...

  9. c# 字符串操作

    一.字符串操作 //字符串转数组 string mystring="this is a string" char[] mychars=mystring.ToCharArray(); ...

随机推荐

  1. 第34天学习打卡(GUI编程之组件和容器 frame panel 布局管理 事件监听 多个按钮共享一个事件 )

    GUI编程 组件 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 1 简介 GUi的核心技术:Swing AWT 1.界面不美观 2.需要jre环境 为什么要学习GU ...

  2. 更新啦!第 59 期《HelloGitHub》开源月刊

    兴趣是最好的老师,HelloGitHub 就是帮你找到兴趣! 简介 分享 GitHub 上有趣.入门级的开源项目. 这是一个面向编程新手.热爱编程.对开源社区感兴趣 人群的月刊,月刊的内容包括:各种编 ...

  3. JUC-ThreadLocalRandom

    目录 Radndom类的局限性 ThreadLocalRandom 这个类是在JDK7中新增的随机数生成器,它弥补了Random类在多线程下的缺陷. Radndom类的局限性 在JDK7之前包括现在j ...

  4. 基于 react + electron 开发及结合爬虫的应用实践🎅

    前言 Electron 是一个可以使用 Web 技术如 JavaScript.HTML 和 CSS 来创建跨平台原生桌面应用的框架.借助 Electron,我们可以使用纯 JavaScript 来调用 ...

  5. Synchronized 轻量级锁会自旋?好像并不是这样的。

    本来是在写面霸系列的,写着写着就写到了这一题: Synchronized 原理知道不? 而关于 Synchronized 我去年还专门翻阅 JVM HotSpot 1.8 的源码来研究了一波,那时候我 ...

  6. HDOJ-1043 Eight(八数码问题+双向bfs+高效记录路径+康拓展开)

    bfs搜索加记录路径 HDOJ-1043 主要思路就是使用双向广度优先搜索,找最短路径.然后记录路径,找到结果是打印出来. 使用康拓序列来来实现状态的映射. 打印路径推荐使用vector最后需要使用a ...

  7. 去哪找Java练手项目?

    经常有读者在微信上问我: 在学编程的过程中,看了不少书.视频课程,但是看完.听完之后感觉还是不会编程,想找一些项目来练手,但是不知道去哪儿找? 类似的问题,有不少读者问,估计是大部分人的困惑. 练手项 ...

  8. NIO三大组件之Buffer

    什么是Buffer Buffer(这里并不是特指Buffer类)是一个存储数据的容器,与数组类似(其实底层依旧是用数组的结构来存储数据),但不同的是,Buffer对象提供了一组更有效的方法去进行写入和 ...

  9. Django1和2的区别

    一.路由的区别 1.Django1中的url from django.conf.urls import url # 使用url关键字 urlpatterns = [ url('article-(\d+ ...

  10. java实现简易的图书馆管理系统

    比较适合新手练手的一个简易项目 直接上源码 Book package code; /** * @author ztr * @version 创建时间:2021年3月4日 下午8:21:40 * 类说明 ...