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;
- }