十六进制字符 包括0~9 和 a~f(在本道题中规定不分大小写)

解题思路

  1. 循环输入一字符串,当出现‘#’时退出输入。
  2. 设置两个标志位,分别记录第一个负号出现的位置和第一个十六进制出现的位置。(如果第一个十六进制字符之前出现大于一个“-”,同样按照一个处理,当作负数)
  3. 比较两个位置的大小,判断结果是否为负数。
  4. 输出结果
#include<stdio.h>
#define N 1000
//思路:设置两个标志位,分别记录第一个负号出现的位置和第一个十六进制出现的位置(用于判断正负)
//      比较两个位置的大小,判断结果是否为负数。
//      十六进制换算成十进制,设置一个变量temp=1,然后更新temp *= 16,得到相应的结果。
int main()
{char ch;int len1=0,len2=0;char str1[N];//输入的所有字符串char str2[N];//筛选出所有的十六进制字符存储int str3[N];//把str2字符数组中的数字字符转化成数字int index1,index2;int cnt1=0;int temp=1;int sum=0;
//将输入的字符传入str1ch=getchar();for(int i=0;ch!='\n';i++){str1[i]=ch;len1++;//输入的字符串的长度ch=getchar();}//遍历寻找第一个负号“-”的位置for(int j=0;j<len1;j++){if(str1[j]=='-'){index1=j;break;}}//遍历寻找第一个十六进制数的位置for(int k=0;k<len1;k++){if((str1[k]>='0'&&str1[k]<='9')||(str1[k]>='a'&&str1[k]<='f')||(str1[k]>='A'&&str1[k]<='F')){index2=k;break;}}//遍历筛选将所有十六进制字符存入字符数组str2for(int k=0;k<len1;k++){if((str1[k]>='0'&&str1[k]<='9')||(str1[k]>='a'&&str1[k]<='f')||(str1[k]>='A'&&str1[k]<='F')){str2[cnt1++]=str1[k];}}//将所有十六进制数转换成数字for(int i=0;i<cnt1;i++){if(str2[i]>='0'&&str2[i]<='9'){str3[i]=str2[i]-'0';}else if(str2[i]>='a'&&str2[i]<='f'){str3[i]=str2[i]-'a'+10;}else if(str2[i]>='A'&&str2[i]<='F'){str3[i]=str2[i]-'A'+10;}}//将str3字符数组中所有十六进制数全部转换为十进制//从个位往高位走for(int j=cnt1-1;j>=0;j--){sum+=temp*str3[j];temp*=16;}//输出if(index1<index2){printf("-%d\n",sum);}else if(index1>index2){printf("%d\n",sum);}return 0;
}

实验7-3-6 字符串转换成十进制整数 (15分)相关推荐

  1. PTA第3章-9 字符串转换成十进制整数 (15 分)

    第3章-9 字符串转换成十进制整数 (15 分) 输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出.如果在第 ...

  2. 字符串转换成十进制整数

    字符串转换成十进制整数 输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出.如果在第一个十六进制字符之前存在字 ...

  3. C#十二进制字符串转换成十进制整数

    十二进制字符串转换成十进制整数 输入一个以#结束的字符串,要求滤去所有的非十二进制字符(不分大小写),组成一个新的表示十二进制数字的字符串,然后将其转换为十进制数后输出.题目保证输出在长整型范围内. ...

  4. 输入一个字符串转换成十进制整数

    输入一个字符串,它可能是2–16进制数中一种进制数的表示,计算它对应的10进制数可能的最小值.例如,"151"可以是6–16进制中任何一种进制数的表示. 对应的10进制数可能的最小 ...

  5. C语言字母转十进制,c语言十进制转换_C语言 字符串转换成十进制整数

    最佳答案 这道题不算难,就是筛选除了a,b,c,d,e,f和数字之外的所有字符,然后把十六进制数转换为十进制数,你等我写一下程序再发上来.追答: #include #include = "0 ...

  6. 八进制字符串转成十进制整数

    题如下: 将无符号八进制数字构成的字符串转换为十进制整数.例如,输入的字符串为:556,则输出十进制整数366. 代码如下: #include <stdio.h>#define N 10v ...

  7. 十六进制字符串转换成十进制非负整数

    十六进制字符串转换成十进制非负整数 题目详情 输入一个以#结束的字符串,滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,输出该字符串并将其转换为十进制数后输出. 输入格式 ...

  8. 把字符串转换成int整数

    题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法 ...

  9. 十六进制字符串转换成十进制数

    // Convert the number expressed in base-16 to an integer. string hex = "0x60"; int value = ...

最新文章

  1. 深度解读Helm 3: 犹抱琵琶半遮面
  2. 聊一聊:请假不想说真实原因,你都怎么跟领导讲?
  3. 027_JavaScript数组迭代
  4. Spring-AOP @AspectJ切点函数之args()和@args()
  5. 基于Javaweb的订餐管理系统的介绍和分析
  6. RocketMQ消息支持的模式-OrderProducer(顺序)
  7. 如何让SAP Spartacus ng build生成的JavaScript资源附带上store ID
  8. HSF/Dubbo序列化时的LocalDateTime, Instant的性能问题
  9. Linux内核RCU(Read Copy Update)锁简析-前传
  10. 酷q显示无法连接到服务器,本机酷Q与服务器nonebot建立通信
  11. 学计算机听课不重要,评课常用语50条,再也不怕评课了!
  12. PTA:7-37 秀恩爱分得快 (简洁易懂,详解)
  13. 使用 @Transactional 时常犯的N种错误
  14. VC有什么用?该如何学习VC?
  15. WHALE 会员指南(第 1 部分)
  16. Python爬虫进行接口测试
  17. Boosting(XGBoost、LightGBM以及CatBoost)
  18. 运动搜索算法之钻石搜索
  19. php微信公众号发送红包功能
  20. 如何卸载SAS 9.4

热门文章

  1. java filereader blob_如何从javascript发送音频blob到java spring服务...
  2. html如何将多个复选框组织成一组_[Selenium]18.如何处理一组元素
  3. FreeNOS源码编译
  4. 删除用户的命令是什么mysql_mysql新添加用户与删除用户具体操作命令_MySQL
  5. CV_Sicong Liu
  6. 剖析大数据平台的数据采集
  7. MyGeneration学习笔记(5) :在Web Service中使用dOOdad(中)
  8. C#Winform窗体实现服务端和客户端通信例子(TCP/IP)
  9. 前端 html结合css-1篇
  10. Linux (Ubuntu/deepin等)终端命令安装Lamp