【1】main.c
/**************************************************** * * 把整数按照进制数转换为相应进制的字符串 *(要考虑符号),比如 -1234,转换为 “-1234”。 * * ****************************************************/ #include <stdio.h> #include <string.h> #define BUF_LEN 12 //将数字转换成十进制子函数 void iToDecCh(int iNum,char *p); //字符串倒置函数 void strReverse(char* str); /* 根据不同的进制申请不同的字符空间 因为有符号的int最大值为: INT_MAX: +2147 4836 47 INT_MIN: -2147 4836 47 共需要11个字符,加上最后的' ';则需要12字节的空间 任何1个整数表示成16进制,则需要 0X FFFF FFFF 2+8 个字符,加上最后的' ';则需要11个字节的空间 这里定义12个字符的buf。 */ char strBuf[BUF_LEN]; /******* * * 主函数: main 函数开始 * ********/ int main() { char* p; iToDecCh(0,strBuf); //strReverse(strBuf); p=strBuf; while(*p) putchar(*p++); getchar(); return 0; } /****************************************** 将一个数字转换成十进制字符串 算法: 原型: void iToDecCh(int num,char *p) 返回值: 无 参数: int num: 待转换的数字 char* p: 存储字符串的线性地址空间首地址 异常: 无 其他: 无 ********************************************/ void iToDecCh(int num,char *p) { int i; int flag; unsigned int decMask; unsigned int signedFlag; signedFlag=0x8000000; // 用于判断正负 if(0==num) { p[0]='+'; p[1]='0'; return ; } //判断正、负情况 if(num & signedFlag) { flag=0; // p[11] ='-'; 负数 num=-1 * num; //将负数变成整数 } else { flag=1; // p[11] ='+'; 正数 } i=0; while(num > 0) { p[i++]= num % 10 + '0'; num=num /10; } if(flag==1) p[i++]='+'; else p[i++]='-'; p[i]='