|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
char *myitoa(int num, char *str);
char *myitoa(int num, char *str)
{
int dec = 1;
int i = 0;
int temp;
if (num < 0)
{
str[i++] = '-';
num = -num;
}
temp = num;
while (temp > 9)
{
dec *= 10;
temp /= 10;
}
while (dec != 0)
{
str[i++] = num / dec + '0';
num = num % dec;
dec /= 10;
}
str[i] = '\0';
return str;
}
int main(void)
{
char str[10];
printf("%s\n", myitoa(520, str));
printf("%s\n", myitoa(-1234, str));
return 0;
}
- #include <stdio.h>
- char *myitoa(int num, char *str);
- char *myitoa(int num, char *str)//两个参数,第一个是待转换数据,第二个是char类型指针,用于存放转换结果
- {
- int dec = 1;
- int i = 0;
- int temp;
- if (num < 0)//先判断num的正负,看是否需要在字符串前面写负号
- {
- str[i++] = '-';//num为负数,str[0]为'-',str[i++],i在前,先使用i,在对i自加一
- num = -num;//将nuam取反,变为正数
- }
- temp = num;//将临时变量赋值为num,后面需要判断num是多少位,但又要保持num不被改变,所以就定义了一个临时变量temp。
- while (temp > 9)//使用temp循环,判断num有多少位,num有多少位,dec结果就有多少位
- {
- dec *= 10;
- temp /= 10;
- }
- while (dec != 0)//循环,根据位数,从高位开始,逐位向str中添加
- {
- str[i++] = num / dec + '0';//获取当前位的数字,并转为数字对于的ASCII码值,然后添加到字符串中
- num = num % dec;//num去掉当前的最高位
- dec /= 10;//位数减一
- }
- str[i] = '\0';//字符串结尾添加结束字符
- return str;
- }
- int main(void)
- {
- char str[10];
- printf("%s\n", myitoa(520, str));
- printf("%s\n", myitoa(-1234, str));
- return 0;
- }
复制代码
|
|