#include<bits/stdc++.h>
using namespace std;
int main(){
int n,j=0;
cin >> n;
string a,A;
char b[70]={' '};
map<string,char> mp = {
{".-",'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'}
};
cin.ignore();
for(int i=0;i<n;i++){
getline(cin,a);
stringstream ss(a);
while(getline(ss,A,' ')){
b[j]=mp[A];
j++;
}
b[j]='\n';
j++;
}
cout << b;
}
使用#33810的建表
再使用stringstream來將每一行斷句解讀
cin.ignore()用來阻止getline()讀取道上一行的資料
我寫的算式#33810的完整版喔!