编程题#1:单词翻转
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。所谓单词指的是所有不包含空格的连续的字符。
这道题请用cin.getline输入一行后再逐个单词递归处理。
输出
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
样例输入
样例输出
这题经过参考后才想出来,需要回头看
代码:
//第三周
//编程题#1:单词翻转
#include<iostream>
using namespace std;
int i = 0;
char input[501];
int recur() {
char c = input[i];
i++;
if (c == ' ') {
return 1;
}
if (c != ' '&&c != '\0') {
recur();
cout << c;
}
return 1;
}
int main() {
cin.getline(input, 501);
while (input[i] != '\0') {
if (recur() == 1)//每次遇到空格,都会返回1,所以打印一个空格
cout << ' ';
}
if (input[i] == '\0') {
cout << endl;//最后输出换行符
return 0;
}
}