您的位置:首页 > 其它

如何将数字转化为字符串

2013-05-02 15:44 274 查看
#include <stdlib.h>

#include <stdio.h>

void itoa(unsigned long val,char *buf,unsigned radix)

{

char *p; ////// 转换后字符串指针

char *firstdig; ///////// 指针指向第一个数字

char temp; /////////// 临时字符

unsigned digval; //////////// 数字的值

p = buf;

firstdig = p; //////// 保存指向第一个数字指针

do {

digval = (unsigned)(val%radix);

val /= radix; ///////// 得到下一个数字

/********转换成ASCII码,然后保存

if (digval > 9)

*p++ = (char)(digval-10+'a'); ////////////字母

else

*p++ = (char)(digval+'0'); //////////// 数字

} while (val > 0);

/**************我们在buffer里存储了数字,但是是反转顺序 *************/

*p-- = '\0'; /////////////// terminate string; p points to last digit

do {

temp = *p;

*p = *firstdig;

*firstdig = temp; //////////// swap *p and *firstdig

--p;

++firstdig; ////////// advance to next two digits

} while (firstdig < p); ////////////// repeat until halfway

}

int main(void)

{

int number = 0x123a5;

char string[25];

itoa(number,string, 16);

printf("integer = %d string = %s\n", number, string);

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: