首页 > 技术文章 > 整数转换字符串

longzhongren 2015-04-13 15:46 原文

思路:首先确定整数的长度,这样做有两个好处。

  • 一个是用于节省内存,因为要事先申请字符串地址空间;
  • 一个是长度后,可以直接取整数的高位,不需要从个位取,从个位取构成的字符串后面还需要一个逆序

具体代码如下:

/*
 *整数转化成字符串
*/

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

 程序猿必读

推荐阅读