-
引言
常见面试题,手写诸如atoi, strcpy, strcat等的函数。小春面试遇到了写atoi的题,我在这也写个不怎么样的。其实就是把字符每一位换为数都算和出来。手写程序在面试中很重要,需要经常练习,不能依靠IDE以及调试出结构,首先思路要明确,算法要合理。
-
代码
#include "stdio.h" int isDigit(int s)//判断是否是数字 { if(s >= '0' && s <= '9') return 1; else return 0; } int my_atoi(const char* str) { int c; int sum = 0; int sign; while((*str)==' ' || (*str) == '\n' || (*str) == '\r' || (*str) == '\t')//判断是否是空格换行之类的空字符,有则跳过 str++; sign = *str; //符号 if(sign == '-' || sign == '+')//若有符号则跳过 str++; c = (int)*str++; while(isDigit(c)) { sum = 10 * sum + (c - '0'); c = (int)*str++; } if(sign == '-') return -sum; else return sum; } int main() { char* str = "-123"; printf("%d\n",my_atoi(str)); return 0; }