一个单词C++程序

一个单词C++程序_第1张图片

#include 
using namespace std;
void printStack(stack<string> myStack) {
	stack<string> helperStack;
	while (!myStack.empty()) {
	    helperStack.push(myStack.top());
	    myStack.pop();
	}
	while (!helperStack.empty()) {
	    cout << helperStack.top() << " ";
	    helperStack.pop();
	}
}
int main(){
	stack<string> MyStack;
	string t;
	while (cin >> t){
		MyStack.push(t);
		cout << "您已输入单词" << MyStack.top() << endl;
	}
	if (MyStack.empty()) cout << "没有单词哦!" << endl;
	else{
		cout << "单词数量:" << MyStack.size() << endl;
		cout << "输入单词为:" << endl;
		printStack(MyStack);
		cout << endl;
		cout << "准备清理单词" << endl;
		while (!MyStack.empty()){
			cout << "正在清理单词" << MyStack.top() << endl;
			MyStack.pop();
		}
		cout << "清理完成" << endl;
	}
	return 0;
}

这段程序定义了一个函数printStack和一个main函数。main函数中首先定义了一个stack类型的栈MyStack和一个字符串类型的变量t。然后通过while循环,不断地读入字符串,将其压入栈中,并输出提示语句。读入字符串的操作可以通过键盘输入或者重定向输入文件来完成。

当读入完所有的字符串后,通过if-else判断栈是否为空。如果栈为空,则输出相应提示语句;否则,分别输出栈的大小和栈中存储的所有字符串,同时调用printStack函数来完成输出操作。

printStack函数的作用是将输入的栈myStack中的所有元素倒序输出。为了实现这一目的,我们可以使用一个辅助栈helperStack,将原栈中所有元素依次弹出并压入辅助栈中,然后再依次弹出辅助栈中的元素并输出即可。

最后,在main函数中通过while循环将栈中所有元素依次弹出,输出提示语句,完成清理操作。

你可能感兴趣的:(C/C++,c++,开发语言)