求大神用c语言帮我做一下这道题,

1个回答

  • int decode(char *buf)

    {

    int ret = (buf[0] - '0') << 4 | (buf[1] - '0') << 3 | (buf[2] - '0') << 2 | (buf[3] - '0') << 1 | (buf[4] - '0');

    return ret;

    }

    int main(int argc,char *argv[])

    {

    printf("请输入字符串n");

    char inputBuf[256] ;

    char outputBuf[256] = {0};

    scanf("%s",inputBuf);

    int i;

    for(i=0;i

    {

    if(inputBuf[i] >= 'A' inputBuf[i] <= 'Z')

    {

    inputBuf[i] = '0';

    }

    else if(inputBuf[i] >= '0' inputBuf[i] <= '9')

    {

    inputBuf[i] = '1';

    }

    }

    printf("输出:%sn",inputBuf);

    int off = 0;

    int num;

    for(i=0;off < strlen(inputBuf);i++,off+=5)

    {

    num = decode(inputBuf+off);

    outputBuf[i] = num % 26 + 'A';

    }

    outputBuf[i] = '';

    printf("输出:%sn",outputBuf);

    return 0;

    }

    第一个字符是大写字母才会出现这样的结果