求一个int转成char *函数

yunlang2233187 2005-04-15 04:28:54
写一个函数,将int型i(位数不确定)转换成字符串并返回,比如输入123,将它转换成"123"。
请指点!
...全文
30118 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
晨星 2005-04-20
  • 打赏
  • 举报
回复
int 32位整数,10进制不超过11。
64位平台上加上负号不超过21,把缓冲设大一点就够了。
晨星 2005-04-20
  • 打赏
  • 举报
回复
int 32位整数,不超过11位。
64位平台上加上负号不超过21位,把缓冲设大一点就够了。
yunlang2233187 2005-04-20
  • 打赏
  • 举报
回复
谢谢。如果int位数是不确定的呢?
晨星 2005-04-19
  • 打赏
  • 举报
回复
帮楼主写个非递归的看看吧,自己写的,不好。:P
#include <stdio.h>
#include <string.h>

const char* IntToStr(char* buf, int m)
{
char tmp[16];
int isNegtive = 0;
int index;

if(m < 0)
{
isNegtive = 1;
m = - m;
}

tmp[15] = '\0';
index = 14;
do
{
tmp[index--] = m % 10 + '0';
m /= 10;
} while (m > 0);

if(isNegtive)
tmp[index--] = '-';

//这里如果不愿调用库函数,可以使用for循环拷贝字符
strcpy(buf, tmp + index + 1);

return buf;
}


int main()
{
char buf[16];
printf("%s\n", IntToStr(buf, 123456789));
printf("%s\n", IntToStr(buf, 0));
printf("%s\n", IntToStr(buf, -1));
printf("%s\n", IntToStr(buf, -7654321));
return 0;
}
hblinlin 2005-04-19
  • 打赏
  • 举报
回复
sprintf 或itoa
Beover1984 2005-04-19
  • 打赏
  • 举报
回复
网上找找,有一本TC2宝典,那里有库函数介绍,不行就装个MSDN吧
yunlang2233187 2005-04-18
  • 打赏
  • 举报
回复
我如果想要一个自己写的函数或该库函数原码,
初学c且库函数方面的书没有,望各位指教!!
herrycsdn 2005-04-15
  • 打赏
  • 举报
回复
sprintf或itoa
Beover1984 2005-04-15
  • 打赏
  • 举报
回复
库中不是有现成的吗?
函数名: itoa
功 能: 把一整数转换为字符串
用 法: char *itoa(int value, char *string, int radix);
程序例:

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
int number = 12345;
char string[25];

itoa(number, string, 10);
printf("integer = %d string = %s\n", number, string);
return 0;
}
晨星 2005-04-15
  • 打赏
  • 举报
回复
char s[16];
sprintf(s, "%d", i);
pcboyxhy 2005-04-15
  • 打赏
  • 举报
回复
char* itostr(char *str, int i) //将i转化位字符串存入str
{
sprintf(str, "%d", i);
return str;
}

69,393

社区成员

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

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