Sicily 1000. String Reversion

7 篇文章 0 订阅
3 篇文章 0 订阅

Description


Given a valid identifier in C programs, please write a program to reverse it by respectively reversing two parts separated by ‘_’.



Input
The first line is an integer m, indicating the number of test cases.
Then there are m lines and each line contains a string. A string will contain no more than 100 characters and there is one or less ‘_’.


Output
For each test case, print out the string reversed.


Sample Input Copy
3
John_Smith
int_45
_me


Sample Output Copy
nhoJ_htimS
tni_54
_em


神了……de了半小时bug,才知道是不论有没有_标志都会倒置

#include <iostream>
#include <string> 
using namespace std;
int main() {
	int n;
	cin>>n;
	string s;
	int j,k;
	string re;
	int temp;//标记
	for(int i=0; i<n; i++) {
		cin>>s;
		temp=-1;
		for(j=0; j<s.length(); j++) {
			if(s[j]=='_')
				temp=j;
		}
		if(temp!=-1) {
			if(temp!=0){
				for(j=temp-1; j>=0; j--) {
				re+=s[j];
		      	}
		}
			re+='_';
			for(j=s.length()-1; j>temp; j--) {
				re+=s[j];
			}
			cout<<re<<endl;
		}
		else{
			for(j=s.length()-1; j>=0; j--)
				cout<<s[j];
			cout<<endl;	
		}
			
		string k;
		re=k;	
	}
}

一个更简单的版本:
https://blog.csdn.net/Arieste/article/details/50490239

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值