博客
关于我
12.把字符串转换成整数
阅读量:192 次
发布时间:2019-02-27

本文共 906 字,大约阅读时间需要 3 分钟。

要解决这个问题,我们需要将一个字符串转换成整数,并确保该字符串是合法的数值表达。如果字符串不是合法的数值,或者数值为0,则返回0。

方法思路

  • 检查空字符串:如果输入字符串为空,直接返回0。
  • 处理正负号:检查字符串的第一个字符是否为'+'或'-',记录符号并将符号字符替换为'0',以便后续处理。
  • 遍历字符:逐个检查字符串中的每个字符是否为数字。如果发现非数字字符,返回0。
  • 计算数值:将字符串中的每个字符转换为对应的数字值,并累加得到总和。
  • 应用符号:根据记录的符号,调整数值的正负,返回最终结果。
  • 解决代码

    int StrToInt(string str) {    if (str.empty()) {        return 0;    }    int flag = 1;    if (str[0] == '-') {        flag = -1;        str[0] = '0';    } else if (str[0] == '+') {        str[0] = '0';    }    int sum = 0;    for (int i = 0; i < str.size(); ++i) {        if (str[i] < '0' || str[i] > '9') {            return 0;        }        sum = sum * 10 + (str[i] - '0');    }    return flag * sum;}

    代码解释

  • 空字符串检查:如果输入字符串为空,直接返回0。
  • 符号处理:检查字符串的第一个字符是否为'-'或'+',记录符号并将符号替换为'0',以避免后续处理中出现非数字字符。
  • 字符遍历:逐个检查每个字符是否为数字。如果发现非数字字符,返回0,表示字符串不合法。
  • 数值计算:将每个字符转换为对应的数字值,并累加得到总和。
  • 符号应用:根据记录的符号,调整数值的正负,最终返回结果。
  • 这个方法确保了我们能够正确且安全地将字符串转换为整数,同时处理了各种边界情况,如空字符串、非法字符和前导零等。

    转载地址:http://npbb.baihongyu.com/

    你可能感兴趣的文章
    Python中关于类和函数的初体验之"__init__"和"__str__"不是"_init_"和"_str_"
    查看>>
    python中函数接受参数为*args, **kwargs怎么办
    查看>>
    Python中切片的高效迭代
    查看>>
    python中列表乘法、eval、lambda、hasattr、assert、*(星)等的用法
    查看>>
    Python中制作词云的WordCloud参数详解
    查看>>
    Python中可用和使用的系统内存?
    查看>>
    python中存根文件(.pyi)的用途是什么?
    查看>>
    Python中实现ASCII码与字符相互转换
    查看>>
    Python中实现获取所有微信好友的头像并拼接成一张图片
    查看>>
    Python中对象的布尔值
    查看>>
    python中对集合的操作
    查看>>
    python中将列表转换为元组的时间复杂度,反之亦然
    查看>>
    Python中布尔表达式的求值
    查看>>
    python中很常用的10个内置函数整理(初学必备)
    查看>>
    python中打印二维列表数据
    查看>>
    python中打散数组shuffle
    查看>>
    Python中执行外部命令
    查看>>
    Python中拼接numpy数组-ChatGPT4o作答
    查看>>
    Python中提示:no module named 'PIL'
    查看>>
    Python中提示:UnicodeDecodeError: 'ascii' codec can't decode byte 0xe5 in position
    查看>>