实现字符串转为int

来源:互联网 发布:unity3d宣传片 编辑:程序博客网 时间:2024/06/13 18:55

题目:

自己实现一个函数strToint,不能使用atoi或者其他类似的库函数。

解题思路:

这个题不难,主要是靠考虑到各种情况,
1、判断字符串是否为空
2、保存正负号
3、字符串中是否有无效字符(非数字)-->有该字符串无效
4、是否会溢出!!!
我们令出现上述情况时转换的int型数字为0,那么如何区分正常0和异常情况下的0,我们用一个标志位flag即可。

代码如下:

#include<iostream>#include<stdio.h>using namespace std;int flag=0;int strToint(char *str);void main(){char str[]="123456";cout<<strToint(str);}int strToint(char *str){if(str==NULL||*str=='\0') return 0;bool minus=false;if(*str=='+')astr++;else if(*str=='-'){minus=true;str++;}long long res=0;int zf=minus?-1:1;while(*str!='\0'){if(*str>='0'&&*str<='9'){res=res*10+zf*(*str-'0');if((!minus&&res>0x7FFFFFFF)||(minus&&res<(int)0x80000000)){res=0;break;}str++;}else{res=0;break;}}if(*str=='\0'){flag=1;}return (int)res;}





0 0
原创粉丝点击