为了账号安全,请及时绑定邮箱和手机立即绑定

如何在C中将整数转换为字符串?

如何在C中将整数转换为字符串?

C
暮色呼如 2019-10-15 10:24:16
我试过这个例子:/* itoa example */#include <stdio.h>#include <stdlib.h>int main (){    int i;    char buffer [33];    printf ("Enter a number: ");    scanf ("%d",&i);    itoa (i,buffer,10);    printf ("decimal: %s\n",buffer);    itoa (i,buffer,16);    printf ("hexadecimal: %s\n",buffer);    itoa (i,buffer,2);    printf ("binary: %s\n",buffer);    return 0;}但是该示例不起作用(它说该功能itoa不存在)。
查看完整描述

3 回答

?
心有法竹

TA贡献1866条经验 获得超5个赞

自己制作itoa也很容易,请尝试以下操作:


char* itoa(int i, char b[]){

    char const digit[] = "0123456789";

    char* p = b;

    if(i<0){

        *p++ = '-';

        i *= -1;

    }

    int shifter = i;

    do{ //Move to where representation ends

        ++p;

        shifter = shifter/10;

    }while(shifter);

    *p = '\0';

    do{ //Move back, inserting digits as u go

        *--p = digit[i%10];

        i = i/10;

    }while(i);

    return b;

}

或使用标准sprintf()功能。


查看完整回答
反对 回复 2019-10-15
?
开满天机

TA贡献1786条经验 获得超12个赞

用途sprintf():


int someInt = 368;

char str[12];

sprintf(str, "%d", someInt);

可以用表示的所有数字都int将适合12个字符的数组,且不会溢出,除非您的编译器以某种方式使用了32位以上的int。当使用更大位数的数字时,例如long,在大多数64位编译器中,您需要增加数组大小-对于64位类型,至少要增加21个字符。


查看完整回答
反对 回复 2019-10-15
  • 3 回答
  • 0 关注
  • 498 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信