itoa函數的實作
分類: 資料結構與算法 2013-09-25 11:04 3220人閱讀 評論(0) 收藏 舉報
itoa()函數的功能是将一個整數轉換為一個字元串,例如12345,轉換之後的字元串為"12345",-123轉換之後為"-123",歡迎大家的讨論。
[cpp] view plain copy print ?
- #include <stdio.h>
- //反轉字元串
- char *reverse(char *s)
- {
- char temp;
- char *p = s; //p指向s的頭部
- char *q = s; //q指向s的尾部
- while(*q)
- ++q;
- q--;
- //交換移動指針,直到p和q交叉
- while(q > p)
- {
- temp = *p;
- *p++ = *q;
- *q-- = temp;
- }
- return s;
- }
- char *my_itoa(int n)
- {
- int i = 0,isNegative = 0;
- static char s[100]; //必須為static變量,或者是全局變量
- if((isNegative = n) < 0) //如果是負數,先轉為正數
- {
- n = -n;
- }
- do //從各位開始變為字元,直到最高位,最後應該反轉
- {
- s[i++] = n%10 + '0';
- n = n/10;
- }while(n > 0);
- if(isNegative < 0) //如果是負數,補上負号
- {
- s[i++] = '-';
- }
- s[i] = '\0'; //最後加上字元串結束符
- return reverse(s);
- }
- int main(void)
- {
- int m;
- printf("請輸入int型整數m:");
- scanf("%d",&m);
- printf("整數=%d,字元串=%s\n",m,my_itoa(m));
- return 0;
- }