怎样将整数转换为字符串?

zhengy2003 2004-01-29 06:18:01
将整数转换为字符串,大家较好的算法吗(C实现)?
...全文
1124 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
phinecos 2004-01-30
  • 打赏
  • 举报
回复
用c#,int i=int.Parse(Console.ReadLine());
string mystr=i.ToString;
OK了!!!!
何苦那摸累哪??????????????
quickball 2004-01-30
  • 打赏
  • 举报
回复
int n = 10;
char buffer[256] = "";
sprintf(buffer, "%d", n);
eqiaotea 2004-01-30
  • 打赏
  • 举报
回复
1.用itoa
2.用sprintf
3.自己的代码:
/*==============================================================================
// 功 能: 实现整型到字符串的转化
// 参数说明: int nValue [in]: 需要转化的整数值
// char *szString [out]: 转化字符串结果
// int radix [in]: 基数(进制)
// 返 回 值: 转化结果的指针
//------------------------------------------------------------------------------
// IFLYTEK_Embeded : sszhou : create : 2004-01-30
===============================================================================*/
char* IFLY_itoa(int nValue, char *szString, int radix)
{
int i=0, Len=0;
int nTemp=nValue;
char *lpString=szString;

/* 获得符号 */
if(nValue<0)
{
lpString[0] = '-';
lpString++;
nTemp *= -1;
}

/* 倒序录入szString */
for(i=0; nTemp != 0 ; i++)
{
lpString[i] = nTemp%radix;
/* 进行数值向符号的转化 */
if(lpString[i]<=9)
{
lpString[i] += 0x30;
}
else
{
lpString[i] += 0x37;
}
nTemp /= radix;
}

/* 解决0的问题 */
if(i==0)
{
lpString[0] = 0x30;
i++;
}

/* 获得正确的顺序 */
Len = i;
for(i=0; i < (Len/2); i++)
{
nTemp = lpString[i];
lpString[i] = lpString[Len-i-1];
lpString[Len-i-1] = nTemp;
}

lpString[Len] =0;

return szString;
}
KingI 2004-01-29
  • 打赏
  • 举报
回复
可以用itoa()函数:
函数原形:
char *itoa (int value, char *string, int radix);
功能:
将整数值转换为字符串.
头文件:
#include <stdlib.h>
参数说明:
value: 待转换的值.
string: 结果字符串.
radix: 转换用的基数(如:要以十进制数表示,则radix的值为10).
返回值:
结果字符串指针.
例子:
#include <stdio.h>
#include <stdlib.h>
main()
{
int n;
char string[100];
printf ("Input a number:"); /*输入待转换的整数*/
scanf ("%d",&n);
/*开始转换*/
itoa (n,string,10);
/*输出转换后的结果*/
printf ("string=%s",string);
return 0;
}
EricZhuo 2004-01-29
  • 打赏
  • 举报
回复
std::string a_string = boost::lexical_cast<std::string>(a_int);
qazsedcft 2004-01-29
  • 打赏
  • 举报
回复
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

char *longtostr(long num,char*string)
{
int ndigits;
int dec,temp;
for(ndigits=1,dec=10;num/dec!=0;dec*=10,ndigits++)
{;}
string=(char*)malloc(sizeof(char)*(ndigits+1));
if(string==NULL)
return(0);
else
memset(string,0x00,sizeof(char)*(ndigits+1));
temp=num;
for(dec/=10,ndigits=0;temp!=0;dec/=10,ndigits++)
{
*(string+ndigits)=(char)(temp/dec+'0');
temp=temp%dec;
}
return(string);
}

int main()
{
long a;
char *s;
scanf("%ld",&a);
printf("%s\n",longtostr(a,s));
free(s);
getch();
return 0;
}
nasi00 2004-01-29
  • 打赏
  • 举报
回复
库里有,itoa就行

#include <stdlib.h>

int i = 127;
char s[80];
itoa(s,i,10); //10是10进制的意思
kof99 2004-01-29
  • 打赏
  • 举报
回复
char ch[10];
int i;

sprintf(ch,"%d",i);
SS22FF 2004-01-29
  • 打赏
  • 举报
回复
itoa行吗?

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧