求大神用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;

}

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