AcWing 4276. $\Huge$擅长C
原题链接
简单
作者:
fei0825
,
2023-05-23 22:12:52
,
所有人可见
,
阅读 42
#include <iostream>
#include <cstring>
using namespace std;
const int N = 30;
char alp[N][10][10];
bool isCapital(const char& c){
if( c>='A' && c<='Z' ) return true;
return false;
}
void printWord(string t){
for( int i=0; i<7; i++ ){
for( int j=0; j<t.size(); j++ ){
int k = t[j] - 'A';
if( j ) printf(" ");
printf("%s", alp[k][i]);
}
puts("");
}
}
int main(){
for( int i=0; i<26; i++ ){
for( int j=0; j<7; j++ ){
scanf("%s\n", alp[i][j]); //随手加'\n'吃换行
}
}
string s;
getline(cin, s);
int n = s.size();
bool f = false;
for( int i=0; i<n; i++ ){
if( !isCapital(s[i]) ) continue; //除了大写字母的都算作分隔符
int j = i+1;
while( j<n && isCapital(s[j]) ) j++;
if( !f ) f=true; //是第一个单词
else puts("");
printWord(s.substr(i, j-i));
i = j;
}
return 0;
}