说反话 (20分)
总结:
- 依次读入单词(空格为分隔符),再逆序输出。
- (代码1)二维字符数组char str[80][80]存储。
- (代码2)①利用C++中的栈(先进后出),需要头文件#include <stack> 和using namespace std; 。
②使用String类处理字符串,必须用cin,cout输入和输出,需要头文件#include <iostream> 。
4. 注意结尾不输出空格的处理。
代码1:
#include <cstdio>
int main(){
char str[80][80];
int num = 0;
while( scanf("%s", str[num]) != EOF ){//判断结束:先按Enter,Ctrl+z组合键,再Enter
num++;
}
printf("%s", str[num-1]);
for(int i=num-2; i>=0; i--){
printf(" ");
printf("%s", str[i]);
//或者判断空格 if(i>0) printf(" ");
}
return 0;
}
代码2:
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<string> v;
string s;
while(cin >> s)
v.push(s);
cout << v.top();
v.pop();
while(!v.empty()) {
cout << " " << v.top();
v.pop();
}
return 0;
}