請撰寫一個程式讀入一連串編碼過的資料,輸出原來未編碼的數值,亦即這串資料所表示的中文字串。 =E4=B8=83=E5=85=AB=E4=B9=9D=E4=BA=94=E4=B8=80=E4=B8=89=E5=85=AB=E5=9B=9B↵ Ans=七八九五一三八四↵?

1 個解答

評分
  • 4 年前
    最佳解答

    #include<stdlib.h>

    #include<iostream>

    using namespace std;

    int trans(char c){

    if(c>='0' && c<='9'){

    return c-'0';

    }

    return c-'A'+10;

    }

    int main(){

    string s="=E4=B8=83=E5=85=AB=E4=B9=9D=E4=BA=94=E4=B8=80=E4=B8=89=E5=85=AB=E5=9B=9B";//Ans="七八九五一三八四";

    string mod_s="";

    //cin>>s; // 可改由手動輸入

    freopen("out.txt","w",stdout);

    int index=-1;

    while((index=s.find('=')) >-1){

    int itemp = -256+(trans(s.at(index+1))*16+trans(s.at(index+2)));

    s = s.substr(0,index) + s.substr(index+1);

    mod_s += itemp;

    }

    cout<<mod_s;

    fclose(stdout);

    system("out.txt");

    }

還有問題?馬上發問,尋求解答。