这题目真坑,输入一定要用getline,因为可能是空格做分隔符
#include<iostream>
#include<string>
#include<vector>
#include<unordered_map>
using namespace std;
unordered_map<char,vector<string>> mp; //一个字符对应的打印图形,打印图形由string数组组成
vector<string> res;
void print(string half){ //打印一个单词
int k=0;
for(int i=0;i<7;i++){
for(int j=0;j<half.size();j++){
if(j!=half.size()-1) cout<<mp[half[j]][k]<<' ';
else cout<<mp[half[j]][k];
}
k++;
if(i!=6){
cout<<endl;
}
}
}
int main(){
for(char c='A';c!='Z'+1;c++){
vector<string> image;
int n=7;
while(n--){
string line;
cin>>line;
image.push_back(line);
}
mp[c] = image;
}
string s;
getline(cin,s);
int start = 0;
if(s.size()==0) {
puts("");
return 0;
}
for(int i=0;i<s.size();i++){
if(s[0]<'A'||s[0]>'Z') continue;
if(s[i]<'A'||s[i]>'Z') {
string word = s.substr(start,i-start);
print(word);
if(i!=s.size()-1) cout<<endl;
cout<<endl;
start=i+1;
}
while(s[start]<'A'||s[start]>'Z'&&i<s.size()-1) start++;
}
if(s[s.size()-1]<='Z'&&s[s.size()-1]>='A'){
string lastword = s.substr(start);
print(lastword);
}
return 0;
}