64,651
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
static void do_iToa(int i, char* &a)
{
//功能:将整形数字转换为字符串
//说明:要求字符串内存已分配
// 传引用以保证递归退出时指针正确偏移
if(i < 0){
*a = '-';
do_iToa(-1*i, ++a);
return;
}
if(i == 0){
return;
}
else{
char tmp_c = i%10 + '0';
do_iToa(i/10, a);
*a = tmp_c;
a++;
}
}
void iToa(int i, char* a)
{
//功能:将整型数转换为字符串
//说明:调用递归子函数完成转换,添加'\0'
// 传值以保证实参指针不发生变化
// 负责指针非空判断
if(a==NULL){
return;
}
do_iToa(i, a);
*a = '\0';
}
int main()
{
//itoa()测试场景
char *c = new char[10];
int a = -1234;
iToa(a, c);
printf("%s\n", c);
delete[] c;
system("pause");
return 0;
}