注册 登录
编程论坛 C++教室

求教如何把一个数字转换为字符串输出

zju2004 发布于 2010-07-15 18:56, 5137 次点击
如何把一个数字转换为字符串输出
求指导下,谢谢!
7 回复
#2
最近不在2010-07-15 19:11
程序代码:
char* Itoa(int n, char *p, int m)
{
    int a[56] = {0};
    int i = 0;
    int j = 0;
   
    while(n >= 1)
    {
        int nI = n/m;
        a[i++] = n - nI*m;
        n = nI;
    }
   
    while(i--)
    {
        p[j++] = a[i] + 48;
    }
    p[j] = '\0';
    return p;
}
#3
zju20042010-07-16 09:05
非常感谢
#4
zju20042010-07-16 10:55
以下是引用zju2004在2010-7-15 18:56:54的发言:

如何把一个数字转换为字符串输出
求指导下,谢谢!
按照这个方法实现,提示内存错误不知道怎么回事
#5
ToBeOOP2010-07-16 13:06
感觉代码还是带上注释好些
#6
flyingcat2010-07-18 00:44
使用itoa函数
它包含在stdlib.h中
itoa(需要转化的数字,转换后保存的数组,转换的进制)

比如把12345转成"12345"

int num=12345;
char number[10];
itoa(num,number,10);
puts(number);
我记得转换的进制范围是2~16,传入需要转化的数字是个十进制数
#7
txh20022010-08-11 11:41
我这样调用怎么会出错?

void main()
{
    char a;
    int i=0;
    Itoa(90,&a,10);
    while (*(&a+i)!=0)
    {
        cout<<*(&a+i);
        i++;
    }
    cout<<endl;

}
#8
flyingcat2010-08-13 16:34
以下是引用txh2002在2010-8-11 11:41:04的发言:

我这样调用怎么会出错?

void main()
{
    char a;
    int i=0;
    Itoa(90,&a,10);
    while (*(&a+i)!=0)
    {
        cout<<*(&a+i);
        i++;
    }
    cout<

}
a你是一个单字符的,Itoa中第二个参数需要是字符串的指针
char a[100];
Itoa(90,a,10);
这句就是把10进制的90转成10进制存入a字符串
那么cout << a; 就是90
1