#34687: 使用"斷句"


tryage0505 (黃金泡菜)

學校 : 不指定學校
編號 : 224705
來源 : [116.241.11.226]
最後登入時間 :
2023-06-09 19:36:00
b515. 摩斯電碼-商競103 -- 103學年度商業類程式設計競賽模擬題 | From: [123.240.4.48] | 發表日期 : 2023-04-07 22:02

#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的完整版喔!

 
ZeroJudge Forum