2019-03-29 by 崔斐然
功能:将任意类型的数字变量转换为字串子变量。
#include <stdio.h>
#include <stdlib.h>
void my_bzero(void *s,size_t n){
char *s1=(char*)s;
int i=0;
while(i<n){
s1[i]='\0';
i++;
}
}
char *my_itoa(const int num)
{
int num_temp = num;
int index = 0;
char *str = NULL;
// 取得num的位数
while(num_temp!=0)
{
num_temp /= 10;
index++;
}
//为str分配内存,大小为num位数+2('+','-'号与'\0');
str = malloc(sizeof(char)*(index+2));
//格式化
my_bzero(str,(index+2));
if(num>0){
str = str+index;
*str = '\0';
num_temp = num;
//将num逐位转为字符格式,存放到字符型指针str指向的内存中;
while(num_temp != 0)
{
str--;
*str = num_temp % 10 + '0';
num_temp /= 10;
}
}
if(num<0){
num_temp = -num;
//将num逐位转为字符格式,存放到字符型指针str指向的内存中;
int i=0;
while(num_temp != 0)
{
i++;
str=str-1;
*str = num_temp % 10 + '0';
num_temp = num_temp/10;
}
for(int j=i;j!=0;j-- ){
str[j]=str[j-1];
}
str[0]='-';
}
return str;
}
int main() {
char *s=my_itoa(13222342);
printf("The string is %s \n",s);
free (s);
return 0;
}