C语言中的itoa和atoi函数的实现

 

itoa与atoi的代码实现:

 

int atoi(char *str)
{
     char *p=str;

     switch(*p)
     {
     case '+':
              p++;break;
     case '-':
              p++;break;
     default:
              break;
     }

     if(!(*p>='0' && *p<='9'))
     {
            printf("format error"); 
            return 0;
      }
     int result = 0;     

     for(;*p!='\0';p++)
     {
          if(*p>='0' && *p<='9')
                result=result*10+ (*p-'0');
          else           
         {
                printf("format error");
                return 0;
          }        
     }

     if(*str == '-')
          result = -result;

     return result;
}


void itoa(int number,char *str)
{
     char ch[100],*p=str;
     int sign=1,i;

     if(number<0)
     {
          sign=-1;
          number=-number;
     }

     for(i=0;number!=0;number/=10,i++)
     {
          ch[i]=number%10 + '0';
     }
     
     if(sign==-1)
          *p='-';
     i--;
     for(;i>=0;i--,p++)
          *p=ch[i];
     
     *p='\0';
}

 

posted on 2012-07-22 14:39  as_  阅读(3938)  评论(0编辑  收藏  举报

导航