//字符串转换成十进制整数
#include<stdio.h>
int main()
{
int i=0;
char str[80];
printf("Enter a string:");
while((str[i]=getchar())!='#')
i++;
str[i]='\0';
i=0;
char newstr[80];
int k=0,flag=0;
if(str[i]=='-')
{
newstr[k++]=str[i++];
flag=1; //负数
}
for( ;str[i]!='\0';i++)
{
if((str[i]>='0'&&str[i]<='9')||(str[i]>='A'&&str[i]<='F')||(str[i]>='a'&&str[i]<='f'))
{
newstr[k++]=str[i];
}
}
newstr[k]='\0';
printf("New string:");
for(i=0;newstr[i]!='\0';i++)
putchar(newstr[i]);
printf("\n");
long num=0;
i=0;
/*
if(flag==0)
{
if(newstr[i]>='0'&&newstr[i]<='9')
num=num*16+newstr[i]-'0';
else if(newstr[i]>='A'&&newstr[i]<='F')
num=num*16+newstr[i]-'A'+10;
else if(newstr[i]>='a'&&newstr[i]<='f')
num=num*16+newstr[i]-'a'+10;
i++;
}
*/
if(flag)
i++;
for( ;newstr[i]!='\0';i++)
{
if(newstr[i]>='0'&&newstr[i]<='9')
num=num*16+newstr[i]-'0';
else if(newstr[i]>='A'&&newstr[i]<='F')
num=num*16+newstr[i]-'A'+10;
else if(newstr[i]>='a'&&newstr[i]<='f')
num=num*16+newstr[i]-'a'+10;
}
if(flag)
num=-num;
printf("Number=%ld\n",num);
return 0;
} 版权声明:本文为kirisame9原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。