1 #include <stdio.h> 2 3 void intToString(int N,char arr[]){ 4 //仅支持有符号4字节的int类型,范围-2147483648 - 2147483647 5 int i,j,flag; 6 char stack[10]; //栈,int的最值最多10位 7 i=0; //计数器 8 if (N<0){ 9 flag=0; //N是负数 10 N=-N; 11 //把N转为正数,注意,如果N是-2147483648,那么N=-N的结果还是-2147483648 12 //因为-N表达式将-2147483648转为2147483648,而2147483648对于4字节int来说是溢出的,这个溢出的数又变成了-2147483648 13 //这时,程序会计算异常 14 //解决方法,可以在函数开始时加个if语句,将这个值排除或当作特例 15 }else{ 16 flag=1; //N是正数 17 } 18 while (N/10!=0){//说明N还不是一位数,继续拆 19 stack[i]=(char)(48+N%10); //字符的1 - 数字的1 = 48,N%10获取N的个位数,并把转换后的字符入栈 20 N=N/10; 21 i++; 22 } 23 stack[i]=(char)(48+N); //当循环结束,N必定是一个一位数 24 if (flag==0){//如果N是负数,需要在字符串最前面加负号 25 arr[0]='-'; 26 for (j=i;j>-1;j--){//将栈中的字符出栈,j=i+1是因为数组arr的0元素已经保存负号了 27 arr[i-j+1]=stack[j]; 28 } 29 arr[i+2]='