#include <stdio.h> #include <stdlib.h> #include <iostream> using namespace std; char* IntToStr(int& Number, char*& str) { char ch, *left, *right; left = right = str; //求绝对值 unsigned int value = 0; if(Number < 0) { value = - Number; *str = '-'; left++; right++; }else{ value = (unsigned int)Number; } //转换成字符串 while(value) { *right = value % 10 + '0'; value = value/10; right++; } *right = '\0'; //倒转 right--; while(right>left) { ch = *left; *left++ = *right; *right-- = ch; } return str; } int strToInt(char*& str) { int i =0; int num = 0; int len = strlen(str); if (*str == '-') { i++; } while(i<len) { num = num*10 +(str[i] - '0'); i++; } if (*str == '-') { return -num; }else{ return num; } } int main(int argc, char* argv[]) { char *str = (char *)malloc(12*sizeof(char)); memset(str, 0, 12*sizeof(char)); int i = -1234; char* s = IntToStr(i,str); puts(s); free(s); s = "-4321"; int num = strToInt(s); printf("%d\n",num); }