#include <stdio.h>
int main()
{
char s[80],str[80];
int i;
int k=0,m=0;
int flag=1,mark=0;
int num=0;
//输入字符串
while((s[k]=getchar())!='#')
k++;
s[k]='\0';//为字符串加上结尾字符'\0'
for(i=0;s[i]!='\0';i++)
if((s[i]>='0'&&s[i]<='9')||(s[i]>='a'&&s[i]<='f')||(s[i]>='A'&&s[i]<='F'))
{ //找出第一个十六进制字符所在的位置
mark=i;
break;
}
for(i=0;i<mark;i++)//看看第一个十六进制字符前面有没有负号
if(s[i]=='-')
{
flag=0;
break;
}
for(i=0;s[i]!='\0';i++) //提取所有十六进制字符
if((s[i]>='0'&&s[i]<='9')||(s[i]>='a'&&s[i]<='f')||(s[i]>='A'&&s[i]<='F'))
{
str[m]=s[i];
m++;
}
str[m]='\0';
for(i=0;str[i]!='\0';i++)//将十六进制字符转换成十进制数
{
if(str[i]>='0'&&str[i]<='9')
num=num*16+str[i]-'0';
else if(str[i]>='a'&&str[i]<='f')
num=num*16+str[i]-'a'+10;
else if(str[i]>='A'&&str[i]<='F')
num=num*16+str[i]-'A'+10;
}
if(flag==0)
num=-num;
printf("%d",num);
return 0;
}
字符串习题总结.rar
需积分: 0 185 浏览量
2024-01-10
06:37:19
上传
评论
收藏 306KB RAR 举报
2302_80514563
- 粉丝: 0
- 资源: 1
最新资源
- caesium-image-compressor-2.7.1-win-portable.zip
- mybatis详细介绍,特点,特性,用途,使用方法,学习方法文档
- 3GPP Release-06 description
- 计算机网络综合实训范例及要求1.docx
- matplotlib-3.9.0-pp39-pypy39-pp73-macosx-11-0-arm64.whl
- 光刻详细介绍,特点,特性,用途,使用方法,学习方法文档
- MyBatis的插件机制简介.pdf
- vue考试33333333333
- 3GPP Release-05 description
- 2024全新Thinkphp聊天室H5实时聊天室群聊聊天室自动分配账户完群组/私聊/禁言等功能/全开源运营版本
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈