打印

怎样用C语言实现整型向字符型的转换呀

[复制链接]
461|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yinxiangh|  楼主 | 2018-7-9 17:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
怎样用C语言实现整型向字符型的转换呀
沙发
xxrs| | 2018-7-9 17:47 | 只看该作者
试一下 #include "stdlib.h"  中的 itoa 函数。

使用特权

评论回复
板凳
liuzaiy| | 2018-7-9 17:49 | 只看该作者


但是加载 stdlib 库会占用一定的 Flash 空间。

使用特权

评论回复
地板
pangb| | 2018-7-9 17:52 | 只看该作者
可以找一下 itoa 的源码,然后自己声明一个函数,这样不用加载整个 stdlib 库。

使用特权

评论回复
5
ousj| | 2018-7-9 17:55 | 只看该作者
参考

/*******************************************************************************
* Function Name: customize_itoa
********************************************************************************
* Summary:
*    This is a simple function to convert int to ascii code
*
* Parameters:  
*
* Return:
*
*******************************************************************************/
char *customize_itoa(int num,char *str,int radix)
{
    char index[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    unsigned unum;
    int i=0,j,k;
    if(radix==10&&num<0)
    {
        unum=(unsigned)-num;
        str[i++]='-';
    }
    else unum=(unsigned)num;

    do
    {
        str[i++]=index[unum%(unsigned)radix];
        unum/=radix;
    }while(unum);
    str[i]='\0';

    if(str[0]=='-') k=1;
    else k=0;

    char temp;
    for(j=k;j<=(i-k-1)/2.0;j++)
    {
        temp=str[j];
        str[j]=str[i-j-1];
        str[i-j-1]=temp;
    }
    return str;
}

/*******************************************************************************

使用特权

评论回复
6
morrisk| | 2018-7-9 17:57 | 只看该作者

void int_str(int i,char * str)
{
int len =0;
int j;
char c;   
  while(i>0)
    {
          str[len++] = i%10 +'0';
          i= i/10;
     }
     str[len] = '\0';

     for(j=0;j<len/2;j++)
   {
      c = str[j];
      str[j] = str[len-j];
      str[len-j] = c;
    }

}

使用特权

评论回复
7
zyf部长| | 2018-7-9 18:00 | 只看该作者
注意这里
void int_str(int i,char * str)
{
int len =0;

使用特权

评论回复
8
yinxiangh|  楼主 | 2018-7-9 18:02 | 只看该作者

嗯,预料中的结果,先结贴吧,多谢大家啦

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

723

主题

7134

帖子

2

粉丝