C语言问题 :把一整数转换为字符串

来源:百度知道 编辑:UC知道 时间:2024/06/20 23:53:33
函数名: itoa
功 能: 把一整数转换为字符串
用 法: char *itoa(int value, char *string, int radix);

帮帮我好么? 谢谢啦!

这个函数网上很容易找到其源码。上面那位“abcd1236386”给的代码,其实也没问题,但是如果你转换的超出10进制数,那就不能正确显示了。我这里提供的是可以正确显示的,能提供转换2-36进制的数。使用
table[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";这里最多是 Z = 35。
可根据需要扩充table[]。

下面我用C++写了一个使用这个函数的代码,如果你使用的是C语言,那么可以自己相应做一些改变。另外,我使用的是VC6.0编译器,如果你用TC或其他编译器,语法上有一些小改变,自己修改。

#include <iostream>
#include <cstring>
using namespace std;

char *my_itoa(int num,char *str,int radix);//num为需转换整数,str为字符串首字符地址,radix为转换后的进制数

int main()
{
int a,r;

char *s = new char [100] ; //先申请空间
char *c;
c = (char *)s; //把s指向的地址空间的首字符地址赋给c,便于使用my_itoa函数

cout<<"请输入需要转换为字符串的整数:\n";
cin>>a;

cout<<"\n输入希望转换为的基数,比如转换为2进制数请输入2:\n";
cin>>r;

my_itoa(a,c,r);
cout<<"\n"<<s<<endl; //输出结果
return 0;
}

char *my_itoa(int num,char *str,int radix)