#include <stdio.h> #include <stack> #include <string> using namespace std; int main() { stack<string> myStack; // stack<char[20]>这样错误 int m; scanf("%d", &m); for (int i = 0; i < m; i++) { char strArr[200] = { 0 }; // c语言字符数组 scanf("%s", strArr); // 先读入字符数组 string str = strArr; // 再赋值给string myStack.push(str); stack<string> outputStack = myStack; // 备份栈 for (int j = 1; j <= 4; j++) { if (outputStack.empty()) { break; } // c语言必须使用 c_str() 函数 才能输出字符串 printf("%d=%s ", j, outputStack.top().c_str()); outputStack.pop(); } printf("\n"); } return 0; }