7-8 字符串转换成十进制整数

来源:互联网 发布:淘宝接口进销存软件 编辑:程序博客网 时间:2024/05/17 07:27
//字符串转换成十进制整数#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;} 

原创粉丝点击