fengcy的ChinaUnix博客
fengcy
全部博文(60)
2014年(60)
xyfabcde
baopbird
zhangzho
qq129158
aquarius
任若兮
yyxl
czhwin99
韩2涛
分类: C/C++
2014-10-10 19:20:50
原文地址:IntToChar 作者:linux_wuliqiang
/** 定义函数 char * IntToChar(char* pDestStr, int nSrcNum);* 表头文件 #include * 函数描述 将整型数字转换为字符串,(正负数都可以),pDestStr 要有足够的空间来* 容纳转换后的字符串。* 返回值 成功:返回转换后的字符串 失败:返回NULL * 作 者 武立强* 时 间 2009-02-06* 注 意 时刻注意指针现在指到那里了,malloc() 和free()的个数一定要相同* 千万小心内存泄露,和野指针的出现。*/char * IntToChar(char* pDestStr, int nSrcNum){ assert( NULL != pDestStr ); int nTemp = 0; //存储一个位的数字 int nPlace = 0; //存储小数点的位置 int nNegative = 0; // 1--负数, 0---非负数 char* pTemp = NULL; char* pFirst = NULL; int nLen = 0; // 转换后字符串的长度 pTemp =(char*)malloc( sizeof(char)*100 ); if(NULL == pTemp) { return NULL; } memset(pTemp, '\0', 100); pFirst = pTemp; // 判断是否是负数 if(nSrcNum < 0) { nSrcNum = -nSrcNum; nNegative = 1; } // 当循环结束后,nTemp 指向字符串的最后! while( nSrcNum >= 10) { nTemp = nSrcNum % 10; *pTemp = nTemp + 48; // nTemp + 48 数字转成字符 nSrcNum = nSrcNum / 10; // 两个正数相除,结果取整 pTemp++; } *pTemp = nSrcNum + 48; if(nNegative) { *(++pTemp) = '-'; } nLen = strlen(pFirst); pFirst = pDestStr; //字符串反转 for(int i=0; i<nLen; i++) { *pDestStr++ = *pTemp--; } pTemp++; // 指向字符串开始 *pDestStr = '\0'; // 字符串结束, 切记! // 释放分配在堆上的内存. free(pTemp); pTemp = NULL; pDestStr = NULL; return pFirst;}
上一篇:大整数的乘法运算-C语言版(转)
下一篇:C/C++ 笔试、面试题目
登录 注册