收录自己写过的代码

来源:互联网 发布:java工程师个人简历doc 编辑:程序博客网 时间:2024/05/17 05:17

1、编写函数 htoi(s),把由十六进制数字组成的字符串(包含可选的前缀0x或0X)转换为与之等价的整型值。字符串中允许包含的数字包括:0~9、a~f以及A~F。

#include<stdio.h>#include<math.h>#define MAX 1024 int main(int argc, char* argv[]) {  char chars[MAX];/*record input chars*/ char c;/*record iuput char */ int i,j,p;/*record the number of input char*/ long long int num10=0;/*for cache number_10*/   for(i=0;(c=getchar())!='\n'&&i<MAX-1;++i) { chars[i]=c; if((c<='f'&&c>='a')||(c>='0'&&c<='9')||(c>='A'&&c<='F')) {  } else if((c=='x'||c=='X')&&i==1&&chars[0]=='0') { chars[i]=c; } else { printf("Please input char in 'a'~'f' or 'A'~'F' or '0'~'9'\n "); return ; } } chars[i]='\0';  for(j=i-1;j>=0;--j) { int a=chars[j]; if(a<='f'&&a>='a') { a=a-'a'+10; } else if(a<='F'&&a>='A') { a=a-'A'+10; } else if(a<='9'&&a>='0') { a=a-'0'; } else { break; }  num10=num10+a*pow(16,i-j-1); } printf("HEX number is %s, decimal number is %d\n",chars,num10);  return 0; } 


0 0
原创粉丝点击