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