本文共 1099 字,大约阅读时间需要 3 分钟。
int my_atoi(char* ptr){ assert(ptr); int flag = 0; int num = 0; char* pch = ptr; while (*ptr) { if (*pch == '-') { flag = 1; } else if (*ptr>'0'&&*ptr<'9') { num = num*10 + *ptr - '0'; } ptr++; } if (flag == 1) { return -num; } else { return num; }}int main(){ char *tr = "1234";//"+1234"、"-1234" my_atoi(tr); printf("%d\n",my_atoi(tr)); system("pause"); return 0;}
char* my_itoa(int num, char* array){ assert(array); int i = 0; int flag = 0; if (num < 0) { flag = 1; num = -num; } while (num) { array[i] = num % 10 + '0'; num = num / 10; ++i; }//此时的i已经到4 if (flag == 1) { array[i++] = '-';//注意i的变化 } array[i] = '\0';//注意i的变化 int begin = 0; int end = i-1;//注意i的变化 while (end > begin) { char tmp = array[end]; array[end] = array[begin]; array[begin] = tmp; --end; ++begin; } return array;}int main(){ int x; scanf("%d", &x); char arr[100]; printf("%s\n", my_itoa(x, arr)); system("pause"); return 0;}
上面就是两个库函数的模拟实现,如果有什么问题或者有更好的方法可以评论或私信。
转载地址:http://crwbb.baihongyu.com/