问:单个字符到数组

时间:2017-10-02 06:56:34

标签: c++ arrays

我想提出一个代码......让我解释一下......

  1. 我将使用输入来编写十六进制数字(A5B)
  2. 我会将十六进制数字,每个字符放在数组X的一个位置(X [0] = A,X [1] = 5,X [2] = B)。
  3. 然后我想使用SWITCH语句找到每个HEX兄弟的相应BIT号码:

    switch(x[i])
    {
    case '0': cout << "0000"; break;
    case '1' :cout << "0001"; break;
    case '2': cout << "0010"; break;
    case '3': cout << "0011"; break;
    case '4': cout << "0100"; break;
    case '5': cout << "0101"; break;
    case '6': cout << "0110"; break;
    case '7': cout << "0111"; break;
    case '8': cout << "1000"; break;
    case '9': cout << "1001"; break;
    case 'A': cout << "1010"; break;
    case 'B': cout << "1011"; break;
    case 'C': cout << "1100"; break;
    case 'D': cout << "1101"; break;
    case 'E': cout << "1110"; break;
    case 'F': cout << "1111"; break;
    }
    
  4. 每个我想要放入数组Z,例如(Z [0] = 1010,Z [1] = 0101,Z [2] = 1011);

  5. 然后最后将数组Z反向打印到一个INT Bin。
  6. 你们可以帮助我吗?我不知道如何将输入单个字符转换为Array,或者将数组输出转换为单个INT。 数组到单位的输出可能是这样的吗?

    while (t!=0){
    int Bin=Bin + Z[t];
    Bin=Bin+g;
    g*=1000;
    t-=1;
     }
    

    “t”是步骤编号为4的数组z的大小。它将该位置的卷写入int Bin,然后将int Bin乘以1 000,(将bin移位4在左边)我不知道你是否了解我 英语不是我的母语,但是你从代码中得到了这个想法(这很神奇,因为当英语中的某人写代码并将其发送到德国并且他们不能说英语时他们可以理解他)... okey但是回到话题......你能帮帮我吗?谢谢。

1 个答案:

答案 0 :(得分:1)

我并不完全理解你的问题,但从我能收集的内容来看,这似乎就是你想要的。

using namespace std:
int main(){

    string x;
    cin>>x;
    string z[x.size()]; 
    for (int i = 0; i < x.size(); ++i){
        switch(x[i]){
            case '0': z[i] = "0000";
                  break;
            case '1' :z[i] = "0001";break;
            case '2': z[i] = "0010";break;
            case '3': z[i] = "0011";break;
            case '4': z[i] = "0100";break;
            case '5': z[i] = "0101";break;
            case '6': z[i] = "0110";break;
            case '7': z[i] = "0111";break;
            case '8': z[i] = "1000";break;
            case '9': z[i] = "1001";break;
            case 'A': z[i] = "1010";break;
            case 'B': z[i] = "1011";break;
            case 'C': z[i] = "1100";break;
            case 'D': z[i] = "1101";break;
            case 'E': z[i] = "1110";break;
            case 'F': z[i] = "1111";break;
        }
    }
    string s(4*x.size(),'0');
    int k = 0;
    for (int i = x.size()-1; i >= 0; i--){
        for (int j = 3; j >= 0; j--){
            s[k] = z[i][j];
            k++;
        }
    }
    cout << s << endl;
}

一开始也包括iostream。