是否有包含负号的 isdigit 函数(重载)?
Is there an isdigit function (overload) which includes the negative symbol?
我正在尝试搜索数字的开头。 isdigit
is there a c++ 可以在 isdigit
中包含负数的函数?这样它将匹配数字的第一个字符:“-13”?
没有,但是做一个很简单
bool my_isdigit(unsigned char ch)
{
return ch == '-' || std::isdigit(ch);
}
如果你想想数字是什么,这是有道理的。根据标准,一个数字被定义为 [0-9]
并且详细说明 ,C++ 中实际上没有任何负文字。它是一个正数,应用一元 operator -
。
否,因为std::isdigit
仅用于检查单个字符是否为(十进制)数字,而不是数字。
如果你想检查一个字符串是否包含一个有效的数字(是否为负数),那么你可以尝试自己解析它(这实际上很简单)或者使用例如std::stoi
(和系列)除了转换(您可以丢弃其结果)之外还包括对输入字符串的验证。
不,没有。 数字 是一种包含数字表示形式的东西,连同基数、符号、小数分隔符、千位分隔符,也许还有其他东西,例如指数。
如果 -
被发送到 isdigit
那么你可以预料到一些人希望 +
也被包括在内,甚至可能 (
和 )
让会计师们开心。
总而言之,测试某物是否表示数字与测试特定字符是否为数字完全不同。
我正在尝试搜索数字的开头。 isdigit
is there a c++ 可以在 isdigit
中包含负数的函数?这样它将匹配数字的第一个字符:“-13”?
没有,但是做一个很简单
bool my_isdigit(unsigned char ch)
{
return ch == '-' || std::isdigit(ch);
}
如果你想想数字是什么,这是有道理的。根据标准,一个数字被定义为 [0-9]
并且详细说明 operator -
。
否,因为std::isdigit
仅用于检查单个字符是否为(十进制)数字,而不是数字。
如果你想检查一个字符串是否包含一个有效的数字(是否为负数),那么你可以尝试自己解析它(这实际上很简单)或者使用例如std::stoi
(和系列)除了转换(您可以丢弃其结果)之外还包括对输入字符串的验证。
不,没有。 数字 是一种包含数字表示形式的东西,连同基数、符号、小数分隔符、千位分隔符,也许还有其他东西,例如指数。
如果 -
被发送到 isdigit
那么你可以预料到一些人希望 +
也被包括在内,甚至可能 (
和 )
让会计师们开心。
总而言之,测试某物是否表示数字与测试特定字符是否为数字完全不同。