1226件の問題S-の解読メッセージ - タイトルの取得 - 達成するために、-C ++を扱う文字列

質問S:解読メッセージ

制限時間:1秒メモリ制限:32メガバイト
提出:152は解決:66

タイトル説明

次のようにボブは、方法を解読文字は、上記のすべての記号と数字が、あるいくつかの奇妙なメッセージを受信しました:

  1. 1となる'A' 、 2なり'B'、...、26がされているに変更' Z' 。
  2. 「#」空間に。
  3. 無視「 - 」、元の文字を「 - 」だけデジタルを分割します。

今、あなたは、このメッセージを解読ヘルプ暁明プログラミングをしてください。

エントリー

C整数第行為入力は、テスト・データ・セットの数を表します。
入力文字列の次のC線は解読ストリングのみ含まことが数字「 - 」及び「#」が、長さが超えていない100

輸出

入力の各セットのために、テキスト復号出力。

サンプル入力  のコピー

4 
9#23-9-12-12#19-20-5-1-12#1~20#12-5-1-19-20#15-14-5#10-5-23-5-12 
1-14-4#12-5-1-22-5#20-8-5#13-21-19-5-21-13#9-14#20#13-9-14-21-20- 5-19 
1-6-20-5-18#20-8-5#15-16-5-14-9-14-7#15-6#20-8-5#5-24-8-9 -2-9-20-9-15-14 
7-15-15-4#12-21-3-11

サンプル出力  のコピー

私は、少なくとも一つのJEWEL盗む
とLEAVE THE博物館でT分
THE EXHIBITION OF開いた後
GOOD LUCK
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main(){
    int T;
    string s;
    scanf("%d",&T);
    getchar();
    while(T--){
        cin>>s;
        for(int i = 0;i < s.size();i++){
            if(s[i]=='#'){
                cout<<" ";
            }
            if(s[i]=='-'){
                continue;
            }
            if(s[i]>='0'&&s[i]<='9'){
                int num=0;
                if(s[i+1]>='0'&&s[i+1]<='9'){
                    num=10*(s[i]-'0')+(s[i+1]-'0');
                    i++;
                }else{
                    num=s[i]-'0';
                }
                char ch='A'+num-1;
                cout<<ch;
            }
        }
        cout<<endl;
    }
}

コード

公開された20元の記事 ウォンの賞賛0 ビュー117

おすすめ

転載: blog.csdn.net/weixin_31789689/article/details/104736572