leetcode 8. String to Integer (atoi)

来源:互联网 发布:一部讲人工智能的电影 编辑:程序博客网 时间:2024/06/09 03:49

把一个字符串转换为一个整型数,题目描述在这里

代码贴在这里:

#include<stdlib.h>#include<iostream>#include<string>#include<cctype>using namespace std;int myAtoi(string str) {//跳过前面的空格字符,直到遇上数字或正负号才开始做转换,if(str.empty())return 0;//而再遇到非数字或字符串时('\0')才结束转化,double ret=0,val=1;//并将结果返回(返回转换后的整型数)。bool flag=true;for(int i=0; i<str.size(); ++i) {if(isspace(str[i])&&flag)continue;//跳过开头的空格 if(isalpha(str[i]))break;//出现字母直接退出 if(!flag&&!isdigit(str[i]))break;//开始转换时出现数字以外的字符时直接退出 if(str[i]=='-'|| str[i]=='+') {flag=false;if(str[i]=='-')val=-1;}if(isdigit(str[i])) {ret=ret*10+str[i]-'0';flag=false;}}if(ret*val>INT_MAX)return INT_MAX;//如果值出现溢出,根据结果返回相应值 else if(ret*val<INT_MIN)return INT_MIN;else return ret*val;}int main() {cout<<atoi("  56hg7")<<endl;cout<<myAtoi("56fg45")<<endl;return 0;}