用C++编写一个递归函数convert(),它的功能是将一个整数转换为字符串。
1个回答
展开全部
没测过,可能需要改下细节
两个不完善的地方:
1. 使用前需要先buf清零
2. 转换完毕buf前半部分会有空格填充
void convert(int a, char* buf, int sz)
{
if (sz <= 1 && a > 0)
{
std::cerr << "buffer size not enough" << std::endl;
return;
}
if (a == 0)
{
*(buf+sz-2) = ' ';
}
else
{
int b = a%10;
a /= 10;
*(buf+sz-2) = b+48;
}
sz --;
convert(a, buf, sz);
}
两个不完善的地方:
1. 使用前需要先buf清零
2. 转换完毕buf前半部分会有空格填充
void convert(int a, char* buf, int sz)
{
if (sz <= 1 && a > 0)
{
std::cerr << "buffer size not enough" << std::endl;
return;
}
if (a == 0)
{
*(buf+sz-2) = ' ';
}
else
{
int b = a%10;
a /= 10;
*(buf+sz-2) = b+48;
}
sz --;
convert(a, buf, sz);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询