剑指offer 54-表示数值的字符串
来源:互联网 发布:淘宝手机兼职怎么做 编辑:程序博客网 时间:2024/05/29 05:52
题目描述
请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。
123.45e+6#include<iostream>using namespace std;void scanDigits(char **str){while(*str!=NULL && **str>='0' && **str<='9')(*str)++;}bool isExponential(char **str){if(**str!='e' && **str!='E')return false;(*str)++;if(**str=='+' || **str=='-')(*str)++;if(**str=='\0')return false;scanDigits(str);return (**str=='\0')?true:false;}bool isNumeric(char *str){if(str == NULL)return false;if(*str=='+' || *str=='-')str++;if(*str=='\0')return false;bool numeric = true;scanDigits(&str);if(*str!='\0'){if(*str=='.'){++str;scanDigits(&str);if(*str=='e' || *str=='E'){numeric = isExponential(&str);}}else if(*str=='e' || *str=='E'){numeric = isExponential(&str);}elsenumeric == false;}return numeric && (*str=='\0'); }void Test(char* testName, char* string, bool expected){ if(testName != NULL) printf("%s begins: ", testName); if(isNumeric(string) == expected) printf("Passed.\n"); else printf("FAILED.\n");}int main(int argc, char* argv[]){ Test("Test1", "100", true); Test("Test2", "123.45e+6", true); Test("Test3", "+500", true); Test("Test4", "5e2", true); Test("Test5", "3.1416", true); Test("Test6", "600.", true); Test("Test7", "-.123", true); Test("Test8", "-1E-16", true); Test("Test9", "1.79769313486232E+308", true); printf("\n\n"); Test("Test10", "12e", false); Test("Test11", "1a3.14", false); Test("Test12", "1+23", false); Test("Test13", "1.2.3", false); Test("Test14", "+-5", false); Test("Test15", "12e+5.4", false);return 0;}
0 0
- 剑指offer 54-表示数值的字符串
- 《剑指offer》:[54]表示数值的字符串
- 剑指offer--表示数值的字符串
- 《剑指offer》表示数值的字符串
- 剑指offer—表示数值的字符串
- 剑指offer:表示数值的字符串
- 剑指Offer--054-表示数值的字符串
- 剑指offer-表示数值的字符串
- 《剑指offer》-表示数值的字符串
- 剑指offer 表示数值的字符串
- 剑指offer-53.表示数值的字符串
- 剑指offer:表示数值的字符串
- 剑指Offer:表示数值的字符串
- 剑指offer--表示数值的字符串
- 剑指offer--表示数值的字符串
- 剑指offer:表示数值的字符串
- 剑指Offer---表示数值的字符串
- 【剑指Offer学习】【面试题54:表示数值的字符串】
- Solaris 10 改ip参考文档之二
- 基于maven的spring mvc项目
- 欢迎使用CSDN-markdown编辑器
- shell基础
- 进程 线程 作业 管程 小结
- 剑指offer 54-表示数值的字符串
- 如何让各大云盘下载成为你的小金库,独家原创-微互联!
- 信号与槽
- Spring Java-based容器配置
- Leetcode|Merge Two Sorted Lists
- java 服务提供者框架
- c++ primer读书笔记--第二章 变量和基本类型
- 【日常】一次真实的入侵过程
- Java中的泛型(2)