求一个int转成char *函数
写一个函数,将int型i(位数不确定)转换成字符串并返回,比如输入123,将它转换成"123"。
请指点!
问题点数:20、回复次数:11Top
1 楼pcboyxhy(-273.15℃)回复于 2005-04-15 16:36:56 得分 3
char* itostr(char *str, int i) //将i转化位字符串存入str
{
sprintf(str, "%d", i);
return str;
}Top
2 楼steedhorse(晨星)回复于 2005-04-15 16:40:55 得分 0
char s[16];
sprintf(s, "%d", i);Top
3 楼Beover1984(摇滚人生)回复于 2005-04-15 16:51:39 得分 3
库中不是有现成的吗?
函数名: 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;
}
Top
4 楼herrycsdn(卓一凡)回复于 2005-04-15 16:53:37 得分 2
sprintf或itoaTop
5 楼yunlang2233187(冰水湖)回复于 2005-04-18 18:01:23 得分 0
我如果想要一个自己写的函数或该库函数原码,
初学c且库函数方面的书没有,望各位指教!!Top
6 楼Beover1984(摇滚人生)回复于 2005-04-19 08:44:56 得分 0
网上找找,有一本TC2宝典,那里有库函数介绍,不行就装个MSDN吧Top
7 楼hblinlin(木木)回复于 2005-04-19 08:51:16 得分 2
sprintf 或itoaTop
8 楼steedhorse(晨星)回复于 2005-04-19 09:01:11 得分 10
帮楼主写个非递归的看看吧,自己写的,不好。: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;
}Top
9 楼yunlang2233187(冰水湖)回复于 2005-04-20 12:44:10 得分 0
谢谢。如果int位数是不确定的呢?Top
10 楼steedhorse(晨星)回复于 2005-04-20 12:47:57 得分 0
int 32位整数,不超过11位。
64位平台上加上负号不超过21位,把缓冲设大一点就够了。Top
11 楼steedhorse(晨星)回复于 2005-04-20 12:51:00 得分 0
int 32位整数,10进制不超过11。
64位平台上加上负号不超过21,把缓冲设大一点就够了。Top




