gpt4 book ai didi

c++ - 是否有 STL 或 boost 函数来确定字符串是否为数字?

转载 作者:可可西里 更新时间:2023-11-01 14:53:03 25 4
gpt4 key购买 nike

我对 C++、boost 等非常陌生。

我想知道在 boost 或 STL 中是否已经有一个函数可以用来确定字符串是否为数字。

数字字符串可能如下所示:100

100.52

我知道有很多关于如何编写这样一个函数的例子,但我想知道是否已经有一个函数可以用于此。

我正在寻找纯 C++ 解决方案,而不是 C。

[更新:我已经在使用 lexical_cast 来转换我的字符串,我只是想知道是否有像 is_numeric 这样的方法可以用于此...]

最佳答案

不,没有现成的方法可以直接执行此操作。

你可以使用 boost::lexical_cast<double>(your_string)std::stod(your_string)如果它抛出异常,则您的字符串不是 double 字符串。

C++11:

    bool is_a_number = false;
try
{
std::stod(your_string);
is_a_number = true;
}
catch(const std::exception &)
{
// if it throws, it's not a number.
}

boost :

    bool is_a_number = false;
try
{
lexical_cast<double>(your_string);
is_a_number = true;
}
catch(bad_lexical_cast &)
{
// if it throws, it's not a number.
}

关于c++ - 是否有 STL 或 boost 函数来确定字符串是否为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5577874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com