c语言 第20 题

2025-04-29 11:02:38
推荐回答(1个)
回答1:

#include "stdio.h"

#define MAXLEN 80

int main( )

int i,k=0;

long number;

char ch, str[MAXLEN], num[MAXLEN];


printf("请输入一个字符串:");

while((str[k]=getchar())!='\n'&& k< MAXLEN-1) k++;

str[k]='\0'; /*置字符串结束标志*/


/*请在两条星线间填入相应的代码, 滤去字符串中所有非十六进制字符组成新字符串*/

/**************************************************************************/

for(i=k=0;str[i];i++)

if(str[i]>='0'&&str[i]<='9'||str[i]>='A'&&str[i]<='F'||str[i]>='a'&&str[i]<='f')

str[k++]=str[i];

str[k]='\0';    

/**************************************************************************/


/*请在两条星线之间填入相应的代码, 将新字符串转换为十进制整数*/

/**************************************************************************/

for(number=i=0;str[i];i++)

{if(str[i]>='0'&&str[i]<='9')number=number*16+str[i]-'0';

else if(str[i]>='A'&&str[i]<='F')number=number*16+str[i]-55;

else if(str[i]>='a'&&str[i]<='f')number=number*16+str[i]-87;

}

/**************************************************************************/


printf("十进制整数=%ld\n",number);

}