我是C语言初学者,请问我的这段简陋代码哪里有问题,代码目的是输出一个数字的字符串形式。
#include<stdio.h>#include<stdlib.h>char*Ostring(int);char*Ostring(intinteger){inta=10...
#include <stdio.h>
#include <stdlib.h>
char *Ostring(int);
char *Ostring(int integer)
{
int a = 10000; //a 为除数
int k = 0; //k 为偏移量
int count = 1; //count为元素的总个数
//求得与输入数字有相同位数的 a
while (integer / a == 0)
{
a /= 10;
}
//计算元素的总个数
int m = a;
for (;;)
{
if (integer < 0)
{
++count;
}
if (m == 1)
{
++count;
break;
}
m = m / 10;
++count;
}
//将数字代入指针
char *str = (char*)malloc(count * sizeof(char));
if (integer < 0)
{
*(str + 0) = '-';
++k;
++count;
}
for (; k < (count - 1); ++k)
{
*(str + k) = integer / a;
integer = integer % a;
a = a / 10;
}
*(str + count - 1) = '\0';
return str;
}
int main()
{
printf(" %s", Ostring(321));
return 0;
} 展开
#include <stdlib.h>
char *Ostring(int);
char *Ostring(int integer)
{
int a = 10000; //a 为除数
int k = 0; //k 为偏移量
int count = 1; //count为元素的总个数
//求得与输入数字有相同位数的 a
while (integer / a == 0)
{
a /= 10;
}
//计算元素的总个数
int m = a;
for (;;)
{
if (integer < 0)
{
++count;
}
if (m == 1)
{
++count;
break;
}
m = m / 10;
++count;
}
//将数字代入指针
char *str = (char*)malloc(count * sizeof(char));
if (integer < 0)
{
*(str + 0) = '-';
++k;
++count;
}
for (; k < (count - 1); ++k)
{
*(str + k) = integer / a;
integer = integer % a;
a = a / 10;
}
*(str + count - 1) = '\0';
return str;
}
int main()
{
printf(" %s", Ostring(321));
return 0;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询