怎样判断一个字符串是否为可以转换为数字

lidengdeng 2011-07-06 05:42:05
老问题了, 怎样判断一个字符串是否为可以转换为数字..

例如: -2003.11 +2003.11 2.444e-18 等等都是转以转化为数字的字符串...

我想调用 atof( pszTerm )看是否出现异常, 如果异常则为非数字

但这个catch exception不知道如何写..

另外, 有其他方法么???
据说正则表达式也可以实现, C++是否支持?? 还是要安装插件的

谢谢
...全文
270 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2011-07-06
  • 打赏
  • 举报
回复
个人认为这个问题只能由人来解决:(以下每行都能转换为数字)
一百二十三
壹佰贰拾叁
三加一
L在英文字母表中的顺序
ぉ在日文字母表中的顺序
今天是今年的第几天
这个帖子在几楼
……

(^_^)
bsr2009 2011-07-06
  • 打赏
  • 举报
回复
呵呵,正则表达式是个好办法。
至善者善之敌 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 tan625747 的回复:]
正则表达式也可以实现, C++是否支持?

boost
C/C++ code

#include <boost/regex.hpp>
using namespace boost;


boost::cmatch what;
regex expression("[\d]*",regex::icase | regex::perl);
if(regex_search((char*……
[/Quote]


++1 ,就用boost库
某某9 2011-07-06
  • 打赏
  • 举报
回复

[-+]?(\d*)\.?\d*([eE][-+]?\d+)?

看这个咋样?
luciferisnotsatan 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hnuqinhuan 的回复:]


atof看看有没有异常
[/Quote]
atof好像不抛异常吧。是设置errno

Each function returns the double value produced by interpreting the input characters as a number. The return value is 0.0 for if the input cannot be converted to a value of that type.

In Visual C++ 2005, in all out-of-range cases, errno is set to ERANGE. If the parameter passed in is NULL, the invalid parameter handler is invoked, as described in Parameter Validation. If execution is allowed to continue, these functions set errno to EINVAL and return 0.
tan625747 2011-07-06
  • 打赏
  • 举报
回复
正则表达式也可以实现, C++是否支持?

boost

#include <boost/regex.hpp>
using namespace boost;


boost::cmatch what;
regex expression("[\d]*",regex::icase | regex::perl);
if(regex_search((char*)m_sHtml.c_str(), what, expression))
{
//数字
}
else
{
//非数字cout<<"Error Input getBody"<<endl;
}
無_1024 2011-07-06
  • 打赏
  • 举报
回复

atof看看有没有异常
jixingzhong 2011-07-06
  • 打赏
  • 举报
回复
atof不会抛出异常,根据转换的结果来分支处理吧。
专业超声心脏分割数据集:心脏超声影像核心结构分割,多结构精细识别 本数据集包含近【900例】真实临床环境下的【心脏超声动态影像(2D)】,覆盖广泛患者心功能状态、不同声窗条件与多种扫描切面,确保模型具备出色的临床适应性与结构识别能力。所有影像均由专业超声心动图医师团队二次复核并逐帧进行像素级精细标注,心脏核心结构掩膜精准清晰。数据集经过专业的医学影像预处理(包括图像去噪、标准化),所有帧经统一处理为【224*224】像素,更适合动态分割网络的训练。数据集已严格划分为【训练集】和【验证集】,采用标准影像序列与掩膜配对格式存放,并配套高质量的逐帧分割掩膜,完全适用于U-Net、nnUNet等先进分割网络,以及处理时序信息的模型的训练。 数据信息包含【4类】精细分割目标,对应核心心脏结构与背景: { "0": "背景", "1": "左心室心内膜", "2": "左心室心外膜", "3": "左心房" } 更值得一提的是,我们贴心附赠一套完整的专业数据可视化与分析Python脚本,支持一键生成心腔面积变化曲线、室壁运动分析、射血分数(EF)估算、样本切面对比查看与分割效果动态可视化等关键图表,帮助您深入理解数据特征与心脏动力学信息,优化预处理与数据增强策略,显著提升模型在心脏功能评估任务中的性能。 无论是超声心动图自动分析算法研究、心脏功能定量评估系统开发,还是医疗AI在心血管领域的应用原型验证,这款高质量、精细标注的专业数据集都是您的理想选择。已有众多生物医学工程与临床研究人员通过类似数据集成功开发出高精度的超声心脏自动分割与功能参数计算模型。 在人工智能与心脏超声影像分析深度融合的今天,高质量、由专家逐帧标注的动态超声分割数据是推动该领域技术进步并迈向临床实用的关键。我们隆重推出这套经过严格质控、由资深超声医师精心标注的心脏核心结构分割数据集,专为医学影像AI,特别是

65,208

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧