char* int2char(int p) { int length=1; int temp = p; bool flag = true; if(p < 0) { flag = false; p = -p; } while((temp /= 10) != 0) { length++; } char *buffer = (char*)malloc(length+2); if(buffer == NULL) exit(-1); buffer[length+1] = 0; if(flag) buffer[0] = ' '; else buffer[0] = '-'; temp = p; int mod; for(int i=length; i>0; i--) { mod = temp % 10; temp /= 10; buffer[i] = mod+'0'; } return buffer; } 求余求模,超过int最大限度就不好使了。