字符串转化为整形

需考虑各种条件,如空字符,正负号,非法输入等问题,还要考虑超出int范围的问题。下面的代码中,若是非法输入,则输出0,也没考虑超出范围的问题。若要考虑非法输入,可设置一个全局变量。

int StrToInt(string s)
{
    int result = 0;
    //判断是否为空字符串
    if(s.empty())   return result;
    int flag = 0;
    for(int i=0;i<s.size();i++){
        if(i == 0){
            //正负号判断
            if(s[i] == '+') flag = 1;
            else if(s[i] == '-')    flag = -1;
            else if(s[i] >= '0' && s[i] <= '9'){
                result = s[i] - '0';
                flag = 1;
            }
            else break;
        }
        else{
            if(s[i] >= '0' && s[i] <= '9')
                result = result*10 + (s[i] - '0');
            //非法输入返回0
            else{
                result = 0;
                break;
            }
        }
    }
    return flag*result;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ****效果图**** 假如不使用转化,那么这里计算的1+1得出来的就会是字符串相加后的结果11.
    WangYatao阅读 793评论 0 0
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,874评论 18 399
  • 独处的时候人会变得理智,心坚硬又柔软。独处的时候,我觉得自己的灵魂自由又十分有趣。而这种有趣,我一点也不希望同人分...
    贞吉阅读 217评论 0 0
  • 据说这是一本风靡投资圈和创业圈的书,由Paypal创始人,硅谷创投教父彼得.蒂尔所著. 多数商业主体都在...
    诚品阅读 268评论 0 0
  • The biggest men and women with the biggest ideas can be s...
    二马黎明阅读 283评论 1 2