现在的位置: 首页 > 综合 > 正文

面试题:自己写个字符串转int(my_atoi)

2019年11月21日 ⁄ 综合 ⁄ 共 569字 ⁄ 字号 评论关闭
  • 引言

常见面试题,手写诸如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;
}

抱歉!评论已关闭.