博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
表示数值的字符串
阅读量:6445 次
发布时间:2019-06-23

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

题目描述

请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。

思路:

ScanDigit()函数为判断是否为0~9的整数
isExponential()函数为判断用科学计数法表示的结尾部分

剩下的都是按顺序依次判断

需要注意的是最后的结果要除了返回res值还要判断字符串是否到结尾;

例如式子:1.2.3 

代码:

void ScanDigit(char** string)    {        while(**string != '\0' && **string - '0' >= 0 && **string - '0' <=9)        {            (*string)++;        }    }    bool isExponential(char** string)    {        if(**string != 'e' && **string != 'E')            return false;        (*string)++;        if(**string == '-' || **string == '+')            (*string)++;        if(**string == '\0')//必须在这判断,因为符号e后面必须有值            return false;        ScanDigit(string);        return **string == '\0'? true : false;    }    bool isNumeric(char* string)    {        if(string == NULL)            return false;        if(*string == '-' ||*string == '+')            string++;        if(*string == '\0')            return false;        bool res = true;        ScanDigit(&string);        if(*string != '\0')        {            if(*string == '.')            {                string++;                ScanDigit(&string);                if(*string == 'e' || *string == 'E')                    res = isExponential(&string);            }            else if(*string == 'e'||*string == 'E')                res = isExponential(&string);            else                res = false;        }        return res && *string == '\0';    }

 ???判断0到9的数时,没办法确定有没有?   例如 0.e-5是不合法的?

转载于:https://www.cnblogs.com/Lune-Qiu/p/9259064.html

你可能感兴趣的文章
PostgreSQL 百亿数据 秒级响应 正则及模糊查询
查看>>
【JSP开发】获取web应用的初始化参数
查看>>
iOS开发网络篇—HTTP协议
查看>>
Zabbix 监控 Nginx
查看>>
【C++注意事项】4 指针 Pointers
查看>>
js 深拷贝,浅拷贝
查看>>
LeetCode刷题: 整数反转
查看>>
#学习笔记# 记录一次java父类转子类的方法
查看>>
Vue源码分析系列四:Virtual DOM
查看>>
Git 版本回退
查看>>
Python:使用pypdf2合并、分割、加密pdf文件。
查看>>
rabbitmq java 应用实例
查看>>
Flutter Mac下环境配置
查看>>
springCloud学习1(集中式配置管理)
查看>>
React-Amap-HOC组件封装
查看>>
我的友情链接
查看>>
node.js操作MySQL数据库
查看>>
oracle常用字段类型
查看>>
mapreduce/spark/storm/Tez 框架
查看>>
20个简化开发任务的JavaScript库
查看>>