天天看點

itoa函數的實作 itoa函數的實作

itoa函數的實作

分類: 資料結構與算法 2013-09-25 11:04  3220人閱讀  評論(0)  收藏  舉報

    itoa()函數的功能是将一個整數轉換為一個字元串,例如12345,轉換之後的字元串為"12345",-123轉換之後為"-123",歡迎大家的讨論。

[cpp]  view plain copy print ?

  1. #include <stdio.h>  
  2. //反轉字元串  
  3. char *reverse(char *s)  
  4. {  
  5.     char temp;  
  6.     char *p = s;    //p指向s的頭部  
  7.     char *q = s;    //q指向s的尾部  
  8.     while(*q)  
  9.         ++q;  
  10.     q--;  
  11.     //交換移動指針,直到p和q交叉  
  12.     while(q > p)  
  13.     {  
  14.         temp = *p;  
  15.         *p++ = *q;  
  16.         *q-- = temp;  
  17.     }  
  18.     return s;  
  19. }  
  20. char *my_itoa(int n)  
  21. {  
  22.     int i = 0,isNegative = 0;  
  23.     static char s[100];      //必須為static變量,或者是全局變量  
  24.     if((isNegative = n) < 0) //如果是負數,先轉為正數  
  25.     {  
  26.         n = -n;  
  27.     }  
  28.     do      //從各位開始變為字元,直到最高位,最後應該反轉  
  29.     {  
  30.         s[i++] = n%10 + '0';  
  31.         n = n/10;  
  32.     }while(n > 0);  
  33.     if(isNegative < 0)   //如果是負數,補上負号  
  34.     {  
  35.         s[i++] = '-';  
  36.     }  
  37.     s[i] = '\0';    //最後加上字元串結束符  
  38.     return reverse(s);    
  39. }  
  40. int main(void)  
  41. {  
  42.     int m;  
  43.     printf("請輸入int型整數m:");  
  44.     scanf("%d",&m);  
  45.     printf("整數=%d,字元串=%s\n",m,my_itoa(m));  
  46.     return 0;  
  47. }