700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > c语言化十进制0至1化三进制 C语言十六进制数化十进制

c语言化十进制0至1化三进制 C语言十六进制数化十进制

时间:2022-11-12 21:25:56

相关推荐

c语言化十进制0至1化三进制 C语言十六进制数化十进制

C语言十六进制数化十进制0

//程序功能:连续输入一批以#结束的字符串(字符串的长度不超过80),遇## 则全部输入结束。对每个字符串

// 做如下处理:滤去所有的非十六进制字符后,组成一个新字符串(十六进制形式),然后将其转

// 换为十进制数后输出。

//提 示:除在指定位置添加语句之外,请不要改动程序中的其他内容。

#include "stdio.h"

#define MAXLEN 80

int main( )

{

int i,k;

long number;

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

oldch=' ';

while((ch=getchar())!='#'||oldch!='#')

{

k=0;

while(ch!='#'&& k< MAXLEN-1)

{

str[k++]=ch;

ch=getchar();

}

oldch='#';

str[k]='\0';

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

//成一个新字符串(十六进制形式),然后将其转换为十进制数。

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

for(i=0,k=0;str[i]!='\0';i++)

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

num[k]='\0';

for(i=0,number=0;num[i]!='\0';i++)

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

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

else number=number*16+(num[i]-87);

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

printf("%ld\n",number);

}

}

例如:括号内是说明

输入:

10#Pf4+1#-+A## (连续输入3个字符串)

输出:

16

3905

10

我的答案和这个例子不符合,为什么

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。