微软100题(20)字符串到整数的转化

来源:互联网 发布:新浪期货数据 编辑:程序博客网 时间:2024/06/05 21:42
题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。

例如输入字符串"345",则输出整数345


多考虑一些情况,如   345,前面有空格的, -345 +345前面有符号的,3#45,中间有非法字符的等等

bool valid = true;#define INT_MAX ((int)0x7FFFFFFF)#define INT_MIN ((int)0x80000000)int StrToInt(char* str){bool minus = false;bool valid = false;int result=0;if(str==NULL) return 0;char* p = str;while(*p==' ')p++;if(*p == '-'){minus = true;p++;}else if(*p=='+')p++;while (*p != '\0'){valid = true;if(*p<0 || *p >9){valid = false;return 0;}result += result*10 + (*p -'0');if(minus && result>INT_MAX+1 || !minus && result > INT_MAX){valid = false;return 0;}p++;}if(minus)result = (-1)*result;return result;}




0 0