zoukankan      html  css  js  c++  java
  • the c programming language 2-3

    #include<stdio.h>
    #define MAXLINELEN 1000
    int power(int base,int n)
    {
     int i=0;
     int answer=1;
     for(i=0;i<n;i++)
     answer=answer*base;
     return answer;
    }
    /*strlen函数:返回s的长度*/
    int strlen(char *s) 
    {
     int i;
     i=0;
     while(s[i]!='')
     ++i;
     return i;
    }
    /*getline函数*/
    void getlines(char *s)
    {
     int i=0;
     int lim=MAXLINELEN;
     int c;
     for(i=0;i<lim-1&&(c=getchar())!='
    '&&c!=EOF;i++)
     s[i]=c;
    }
    /*hexalpha_to_int函数:把单个char转换成int*/
    int hexalpha_to_int(int c)
    {
      if(c>='0'&&c<='9')
      c=c-'0'; 
      else if(c>='a'&&c<='z')
      c=c-'a'+10;
      else if(c>='A'&&c<='Z')
      c=c-'A'+10;
      return c;
    }
    /**/
    int htoi(char s[])
    {
     int len;
     int i;
     len=strlen(s);
     int answer=0;
     if(s[0]=='0'&&(s[1]=='X'||s[1]=='x'))
     {
      for(i=2;i<len;i++)
      {
       answer=hexalpha_to_int(s[i])*power(16,len-1-i)+answer;
      }
     }
     else
     {
      for(i=0;i<len;i++)
      {
       answer=hexalpha_to_int(s[i])*power(16,len-1-i)+answer;
       printf("i:%d
    ",i);
       printf("hexalpha_to_int(s[i]):%d
    ",hexalpha_to_int(s[i]));
       printf("power(16,len-1-i):%d
    ",power(16,len-1-i));
       printf("answer:%d
    ",answer);
      }
     }
     return answer;
    }
    main()
    {
     char s[MAXLINELEN];
     getlines(s);
     printf("%d
    ",htoi(s));
    }
  • 相关阅读:
    Unity3D 学习笔记
    Python中os和sys模块
    合并两个排序的链表
    反转链表 难
    链表中倒数第k个结点
    调整数组顺序使奇数在偶数前 14
    javascript中this详解
    静态方法实例方法
    强制类型转换
    javascript类型判断方法
  • 原文地址:https://www.cnblogs.com/learning-c/p/4301167.html
Copyright © 2011-2022 走看看