实验7-3-6 字符串转换成十进制整数 (15 分)
发布日期:2021-06-29 22:19:31
浏览次数:3
分类:技术文章
本文共 1154 字,大约阅读时间需要 3 分钟。
实验7-3-6 字符串转换成十进制整数 (15 分)
输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果在第一个十六进制字符之前存在字符“-”,则代表该数是负数。输入格式:
输入在一行中给出一个以#结束的非空字符串。输出格式:
在一行中输出转换后的十进制数。题目保证输出在长整型范围内。输入样例:
±P-xf4±1!# 输出样例: -3905 #include<stdio.h> int main() { int i=0,k=0,a=0,b=0,flag=1,j=0; long int number=0; char ch[100],ch1[100],ch2[100]={“abcdefABCDEF”}; ch[i]=getchar(); while(ch[i]!=’#’) { i++; ch[i]=getchar(); } ch[i]=’\0’; for(i=0;ch[i]!=’\0’;i++) { if(ch[i]>=‘0’&&ch[i]<=‘9’||ch[i]>=‘a’&&ch[i]<=‘f’||ch[i]>=‘A’&&ch[i]<=‘F’) { ch1[k]=ch[i]; k++; } } ch1[k]=’\0’; for(i=0;i<k;i++) { if(ch1[i]>=‘0’&&ch1[i]<=‘9’) { number=number16+ch1[i]-‘0’; } else if(ch1[i]>=‘a’&&ch1[i]<=‘f’) { number=number16+ch1[i]-‘a’+10; } else if(ch1[i]>=‘A’&&ch1[i]<=‘F’) { number=number*16+ch1[i]-‘A’+10; } } for(i=0;ch[i]!=’\0’;i++) { if(ch[i]= =’-’) { a=i; break; } } for(i=0;ch[i]!=’\0’;i++) { if(ch[i]>=‘0’&&ch[i]<=‘9’||ch[i]>=‘a’&&ch[i]<=‘f’||ch[i]>=‘A’&&ch[i]<=‘F’) { b=i; break; } } for(i=0;ch2[i]!=’\0’;i++) { for(j=0;ch1[j]!=’\0’;j++) { if(ch2[i]!=ch1[j]) { flag=0; break; } } if(flag= =0) break; } if(a<b&&flag==0) { printf("-"); } printf("%ld",number); return 0; }转载地址:https://dingshijie.blog.csdn.net/article/details/87260513 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月24日 22时39分35秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
C++内存泄露和检测
2019-04-30
jQuery常用技巧
2019-04-30
遍历控件
2019-04-30
uncodeToString
2019-04-30
C语言32关键字分类详解
2019-04-30
oracle查询表
2019-04-30
用背景实现表格有线条(背景,然后通过间隔实现)
2019-04-30
根据传入字符串获取自定义hash值
2019-04-30
字节数-说明
2019-04-30
vc转换bcb lib
2019-04-30
unicode转换
2019-04-30
IE6布局
2019-04-30
SQL Server表分区
2019-04-30
Ms sqlserver2008 R2大数据表的分区实现
2019-04-30
性能分析—查询运行慢的原因(SQLServer2008宝典)
2019-04-30
sqlserver2008 死锁解决方法及性能优化方法
2019-04-30
sqlserver动态分区方案例子
2019-04-30
获取浏览器详细信息
2019-04-30
JS获取浏览器类型和版本信息
2019-04-30
canvas2image.js
2019-04-30