自己做的练习题,不知道对不的,自学只能做到这个程度,如果有更好的方法,麻烦留我一份,共同进步
//十进制数字 转 字符
char* mitoa(int value, char *str) {
if (str == NULL) {
return NULL;
}
char buf[256] = { 0 }; //存储转换结果
char temp; // 用于交换数据
char *to = NULL, *from = NULL; // 用于交换数据
int n, i,j, v;
n = i = j = 0;
v = value;
do{
n = v % 10;
buf[i++] = ((n < 0)? -n:n) | '0'; //判断取摸正负
v /= 10; // 删除给数
} while (v != 0);
if (value < 0) { //如果是负数末尾添加‘-’号
buf[i++] = '-';
}
buf[i--] = '\0';
for (j = 0;j < i;++j,--i) //反转buf
{
temp = buf[j];
buf[j] = buf[i];
buf[i] = temp;
}
to = str;
from = buf;
while ((*to++ = *from++) != '\0'); //复制到str
return str;
}