各位大佬是不是因为getline的问题呢?
#include<iostream>
#include <cmath>
#include<string>
#include<sstream>
#include<stack>
#include<vector>
#include<map>
#include<queue>
using namespace std;
int arr[26];
bool isEmpty() {
for (int i = 0; i < 26; ++i) {
if (arr[i] != 0)return false;
}
return true;
}
int main() {
stack<string> output;
output.push("A B C D E F G H I J K L M N O P Q R S T U V W X Y Z");
string s1, s2, s3, s4;
getline(cin, s1);
getline(cin, s2);
getline(cin, s3);
getline(cin, s4);
for (int i = 0; i < s1.length();++i) {
arr[(int)s1[i] - 65]++;
}
for (int i = 0; i < s2.length();++i) {
arr[(int)s2[i] - 65]++;
}
for (int i = 0; i < s3.length();++i) {
arr[(int)s3[i] - 65]++;
}
for (int i = 0; i < s4.length();++i) {
arr[(int)s4[i] - 65]++;
}
while (!isEmpty()) {
string line = "";
for (int i = 0; i < 26; ++i) {
if (arr[i] == 0) {
line += " ";
}
else {
line += "* ";
arr[i]--;
}
}
output.push(line);
}
while (!output.empty()) {
string line = output.top();
cout << line << endl;;
output.pop();
}
}