c语言 第20 题
/* 字符后,组成一个新字符串,然后将其转换为十进制整数后输出。*/
/*提 示:除在指定位置添加语句之外,请不要改动程序中的其他内容。*/
#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'; /*置字符串结束标志*/
/*请在两条星线间填入相应的代码, 滤去字符串中所有非十六进制字符组成新字符串*/
/**************************************************************************/
/**************************************************************************/
/*请在两条星线之间填入相应的代码, 将新字符串转换为十进制整数*/
/**************************************************************************/
/**************************************************************************/
printf("十进制整数=%ld\n",number);
} 展开
#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);
}