如何查找包含数值的字符串[英] How to find string contains a numeric value

问题描述

它们在 C++ 中是否可用,可以确定一个字符串
包含一个数值.
该值可以是十六进制、整数、浮点数.即"1256", "123.566",
"0xffff"
Thnx

推荐答案

4 月 4 日下午 4:01,nishit.gu...@st.com 写道:
它们是否在 C++ 中可用,可以确定 a
字符串包含一个数值.
该值可以是十六进制、整数、浮点数.即"1256", "123.566",
"0xffff"
试试 strtol().如果出现错误,请尝试 strtod().如果那也是
给出错误,则字符串不包含数值.



4 月 3 日晚上 9:01,nishit.gu...@st.com 写道:
它们在 C++ 中是否可用,可以确定一个字符串
包含一个数值.
该值可以是十六进制、整数、浮点数.即"1256", "123.566",
"0xffff"
如果您想要 C++ 解决方案,请在新闻中发布:comp.lang.c++

您的问题的一个答案是为数字编写一个正式的语法
然后用语法写一个解析器.

您可以使用函数在 C 中手动完成:
isdigit()
isxdigit()
ispunct()
isalpha()
还有一点逻辑.

附:
做对了比看起来更难.

仅仅因为某些东西是数字并不意味着您可以阅读它
要么.

例如:
1.0e99999


Thanx fr 回复,但是错误是什么意思......
strtol &strtod 在失败时返回 0,我的字符串可以包含零
也就是"0"
那我怎么区分???
并且在 strtol onre 中需要给出基值,我不确定
可以是十六进制(16),十进制(10)???
老狼写道:
4 月 4 日下午 4:01,nishit.gu...@st.com 写道:
它们是否在 C++ 中可用,可以确定 a
字符串包含一个数值.
该值可以是十六进制、整数、浮点数.即"1256", "123.566",
"0xffff"

试试 strtol().如果出现错误,请尝试 strtod().如果那也是
给出错误,则字符串不包含数值.

本文地址:https://www.itbaoku.cn/post/1050485.html