字符串转整型C++

#include<iostream>
#include<sstram>
using namespace std;

int myAtoi(string str) {
    string s="";
    int result;
    bool  flag=true;
    for(int i=0; i<str.length(); i++) {
        if(! ((str[i] >= '0' && str[i] <='9') || str[i] =='-'|| str[i] ==' ' || str[i] == '+') ){
            break;
        }
        if(str[i] == ' ' && flag){
            
            continue;
        }else{
            flag= false;
            s+=str[i];
        }
    }
    int Int;
//  stringstream ss;
//    ss << s;
//    ss >> Int;
    char st[1000000];
    for(int j=0; j<s.length(); j++){
        st[j]=s[j];
    }
  sscanf(st,"%d", &Int); 
    
    if(Int >= INT_MAX){
        result = INT_MAX;
    }else if(Int <= INT_MIN){
        result = INT_MIN;
        
    } else{
        result = Int;
    }
    return  result; 
}

int main(){
    cout<<myAtoi("    +156548");
    return 0;
}

 

posted @ 2018-11-12 21:51  nefuer  阅读(318)  评论(0编辑  收藏  举报