#include<stdio.h>#include<string.h>voidmain(void){char ch, s[32];int flag =0;printf("请输入一个16进制正整数:\n");while((ch=getchar())!='\n'){switch(ch){case'0':strcat(s,"0000");break;case'1':strcat(s,"0001");break;case'2':strcat(s,"0010");break;case'3':strcat(s,"0011");break;case'4':strcat(s,"0100");break;case'5':strcat(s,"0101");break;case'6':strcat(s,"0110");break;case'7':strcat(s,"0111");break;case'8':strcat(s,"1000");break;case'9':strcat(s,"1001");break;case'a':case'A':strcat(s,"1010");break;case'b':case'B':strcat(s,"1011");break;case'c':case'C':strcat(s,"1100");break;case'd':case'D':strcat(s,"1101");break;case'e':case'E':strcat(s,"1110");break;case'f':case'F':strcat(s,"1111");break;default: flag =1;}}if(flag ==0)for(int i =0; s[i]!='\0'; i++){if(s[i]=='1'){for(int j = i ; s[j]!='\0'; j++)printf("%c", s[j]);break;}}/*或
int i=0;
while(s[i]=='0')
i++;
puts(s+i);
*/elseprintf("输入无效");}