atoi() itoa() 的實現

覺得代碼水平是相當的差…………寫2個十分十分十分簡單的先練一下……高手見笑……

/**********atoi********/
  1 #include <stdio.h>
  2 #include <string.h>
  3 #include <math.h>
  4
  5 int main(int argc , char **argv)
  6 {
  7     int i,length,sum=0;
  8     char buffer[256];
  9
 10     printf("please input your string num!(less than 256 bytes)/n");
 11     scanf("%s",buffer);
 12
 13     length = strlen(buffer);
 14
 15     for(i=0;i<length;i++)
 16     {
 17         if(buffer[i]<48 || buffer[i]>57)
 18         {
 19                 printf("error/n");
 20                 return -1;
 21         }
 22         sum += (buffer[i]-48)  * pow(10,length-i-1);
 23     }
 24
 25     printf("the int num is %d sizeof num is %d/n",sum,sizeof(sum));
 26
 27     return 0;
 28 }

 

 

 

/****************  itoa **********/
  1 #include <stdio.h>
  2 #include <string.h>
  3
  4 int resrv(char *buffer)
  5 {
  6     char tmp;
  7     int length , i;
  8     length = strlen(buffer);
  9     for(i=0;i<length/2;i++)
 10     {
 11         tmp = buffer[i];
 12         buffer[i] = buffer[length-i-1];
 13         buffer[length-i-1]=tmp;
 14     }
 15 }
 16
 17 int main(int argc , char **argv)
 18 {
 19     int num,newnum,i=0;
 20     char buffer[256];
 21
 22     printf("please input a num , less than 32767/n");
 23
 24     scanf("%d",&num);
 25
 26     while(num)
 27     {
 28         newnum = num % 10 ;
 29         buffer[i] = (char) newnum+48;
 30         if(buffer[i]<48 || buffer[i]>57)
 31         {
 32             printf("your input num error/n");
 33             return -1;
 34         }
 35         num = num / 10;
 36         i++;
 37     }
 38
 39     resrv(buffer);
 40
 41     printf("the string num is %s/n",buffer);
 42 }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章