思路:首先确定整数的长度,这样做有两个好处。
- 一个是用于节省内存,因为要事先申请字符串地址空间;
- 一个是长度后,可以直接取整数的高位,不需要从个位取,从个位取构成的字符串后面还需要一个逆序
具体代码如下:
/* *整数转化成字符串 */ #include <stdio.h> #include <stdlib.h> #include <math.h> char *IntToString(int a) { int temp=a;//保存a的值 int len;//缓存用地 int b=a%10; int count=0;//计算整数的长度 char *string; while(b!=0) { count++; a=a/10; b=a%10; if(b==a) break; } count++; string=(char *)malloc(count+1); b=temp%10; len=count; printf("count=%d\n",count); while(temp) { a=temp/Mypow10(--count); (*string++)=a+‘0‘; temp=temp-a*Mypow10(count); } *string=0; string=string-len; return string; } int Mypow10(int a) { if(a<0) return 0; int i=1; int sum=1; for(i=1;i<=a;i++) { sum=sum*10; } return sum; } int main(void) { int a=123; printf("请输入一个整数:\n"); scanf("%d",&a); char *b=IntToString(a); printf("%s\n",b); return 0; }
时间: 2024-10-30 00:17:33