joj 1146 标准输入+字符串反转

1146: Word Reversal


ResultTIME LimitMEMORY LimitRun TimesAC TimesJUDGE
3s8192K2445640Standard

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

 

/*
关键的不是算法
而是怎么读入一行中间有空格的字符串

  算法:
		有一个空格,就把tmp中的内容反转
		
*/
#include <iostream>
#include <cstring>

using namespace std;
char str[500];
char tmp[50];
int n,m;
int flag = 0;
int main()
{
	freopen("in.txt","r",stdin);
	cin >> m;
	while(m-- >0)
	{
		if(flag = 0)
			cout<<endl;
		else
			flag = 1;
		cin >> n;
		cin.get () ;//这个函数是必须的,否则换行之类的没有处理
		for(int i=0;i<n;i++)
		{
			memset(str,'\0',sizeof(str));
			memset(tmp,'\0',sizeof(tmp));
			//gets(str); //破函数,啥都读不进去
			cin.getline (str, 500, '\n') ; //函数的使用
			int j =0;
			for(int i=0;i<strlen(str);i++)
			{
				
				if(str[i] != ' ')
				{
					tmp[j] = str[i];
					j ++;
				}
				else
				{
					j -= 1;
					while(j > -1) //反向赋值
					{
						str[i - j - 1] = tmp[j];
						j -- ;
					}
					j = 0;
				}
				if(strlen(str) -1 == i)
				{
					j -= 1;
					while(j > -1) //反向赋值
					{
						str[i - j] = tmp[j];
						j -- ;
					}
					j = 0;
				}
			}
			cout << str<<endl;
		}
	}
	fclose(stdin);
	return 0;
}

 

就是一道水题,然后标准输入函数的使用

JOJ上PE了。算法没有问题,果断放弃

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值