整数转换字符串

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

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

具体代码如下:

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

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

 程序猿必读

转载于:https://www.cnblogs.com/longzhongren/p/4422383.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值