字符串------表示数值的字符串

来源:互联网 发布:oppo软件开放平台 编辑:程序博客网 时间:2024/06/05 21:08

题目描述:
实现一个函数用来判断字符串是否表示数值(包括整数和小数以及使用科学计数法表示的数)。
分析:
表示数值的字符串的规则有:

  1. 第一个字符只能是’+’ 、’-‘以及数字;
  2. 数字字符后面只能接’.’或’e’/’E’;
  3. 小数点后面必须要有字符且只能接数字字符或’e’/’E’;
  4. ‘e’/’E’后面必须要接字符且只能接数字字符或者’+’ / ‘-‘;
  5. ‘+’ / ‘-’ 后面必须要接数字字符;
bool func(char *str){    if(str == NULL)        return false;    if(*str == '+' || *str == '-')        ++str;    if(*str == '\0')        return false;    funcDigits(*str);    bool ret = true;    if(*str != '\0'){        if(*str == '.'){            funcDigits(&str);            if(*str == 'e' || *str == 'E')                ret = funcExponential(&str);        }else if(*str == 'e' || *str == 'E'){            ret = funcExponential(&str);        }else{            ret = false;        }    }    return ret;}void funcDigits(char **str){    while(**str != '\0' && **str >= '0' && **str <= '9')        ++(*str);}bool funcExponential(char **str){    if(**str != 'e' && **str != 'E')        return false;    ++(*str);    if(**str == '+' || **str == '-')        ++(*str);    if(**str == '\0')        return false;    funcDigits(str);    return (**str == '\0') ? true : false;}
1 0
原创粉丝点击