题目来自openjudge
总时间限制: 1000ms 内存限制: 65536kB
描述
输入一个句子(一行),将句子中的每一个单词翻转后输出。输入
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。输出
翻转每一个单词后的字符串,单词之间的空格需与原文一致。样例:
#include<iostream>
using namespace std;
void flip(char str[], int start, int end){
int temp;
if (end > start){
temp = str[start];
str[start] = str[end];
str[end] = temp;
flip(str, ++start, --end);
}
}
void overturn(){
char str[500];
int start_temp = 0,end_temp;
cin.getline(str, 500);
int n = 0;
while (str[n - 1] != '\0'){
if (str[n] == ' ' || str[n] == '\0'){
flip(str, start_temp, end_temp);
start_temp = n + 1;
}
else{
end_temp = n;
}
n++;
}
cout << str;
}
int main(){
overturn();
return 0;
}