zoukankan      html  css  js  c++  java
  • String to Integer (atoi)

     1 int max_value=2147483647;
     2 int min_value=-2147483648;
     3 class Solution {
     4 public:
     5     int myAtoi(string str) {
     6         long long int ans=0;
     7         int len=str.size(),i=0;
     8         int sign=1;
     9         while(str[i]==' ')i++;
    10         if(str[i]=='-'||str[i]=='+')
    11         {
    12             if(str[i]=='-')
    13                 sign=-1;
    14             i++;
    15         }
    16         for(;i<len;i++)
    17         {
    18             if(!isdigit(str[i]))
    19             {
    20                 break;
    21             }
    22             ans=ans*10+(str[i]-'0')*sign;
    23             if(ans>max_value)
    24                 ans=max_value;
    25             if(ans<min_value)
    26                 ans=min_value;
    27         }
    28         return ans;
    29     }
    30 };
    View Code

    1、首先去掉前导空格

    2、处理+ —操作符,Then, starting from this character, takes an optional initial plus or minus sign followed by as many numerical digits as possible题意貌似每个字符串都有一个操作符,但是测试用例好像并不是这样

    3、遇到非数字字符结束循环

    4.输入问题,c++中的cin>>string x 的方式相当于C中的scanf输入法,并不会输入空格,若想要c 中的gets(char x[]) 的效果,可以用getline(cin,x)

    #include<iostream>
    #include<string>
    using namespace std;
    main ()
    {
    string str;
    getline(cin,str);
    cout<<str<<endl;
    }

    getline(cin,str)可以接受空格并输出

  • 相关阅读:
    BZOJ2530 : [Poi2011]Party
    BZOJ3998 : [TJOI2015]弦论
    BZOJ3941 : [Usaco2015 Feb]Fencing the Herd
    BZOJ3939 : [Usaco2015 Feb]Cow Hopscotch
    搬家啦~
    BZOJ3837 : [Pa2013]Filary
    使用Privoxy做智能代理切换
    放弃iOS4,拥抱iOS5
    让Xcode的 stack trace信息可读
    改进iOS客户端的升级提醒功能
  • 原文地址:https://www.cnblogs.com/varcom/p/4555633.html
Copyright © 2011-2022 走看看