习题7-8 字符串转换成十进制整数(C语言实现)
#include <stdio.h>
#include <ctype.h>
int main()
{
int sum=0,flag1=0,flag2=0;//flag1标识符号,flag2标识第一个十六进制字符
char ch;
while((ch=getchar()) != '#')
{
ch = tolower(ch);
if(!flag1 && !flag2 && ch == '-')//出现十六进制字符后的'-'不输出
flag1=1;//十六进制字符前的'-'号
if((ch>='0' && ch<='9') || (ch>='a' && ch<='f'))
{
flag2=1;//十六进制字符出现
if(ch>='0' && ch<='9')
sum = sum*16 +ch-'0';
if(ch>='a' && ch<='f')
sum = sum*16 +ch-'a'+10;
}
}
if(sum)
{
if(flag1)
printf("-");
printf("%d\n",sum);
}
else
printf("0");
return 0;
}
还没有评论,来说两句吧...