c++ - 如何检查字符串是否正确以将其转换为 int?
问题描述
现在我只谈论 stl 函数。不是这样的:
for (char c : s) {
if (c < '0' || c > '9') {
return false;
}
}
解决方案
我不相信有一个内置函数可以做到这一点,但你可以使用算法来做到这一点:
bool is_valid_int(const std::string& s)
{
return std::all_of(std::begin(s), std::end(s),
[](unsigned char c) {
return std::isdigit(c);
});
}
请注意,此解决方案仅检查字符串的所有字符是否都是数字。要检查它是否可转换为 int,您可以执行以下操作:
int n;
try { n = std::stoi(s); }
catch(...) { /* do something */ }
推荐阅读
- c# - Mp4 流不适用于 c# webserver 中的所有文件
- apache-spark - 在 PySpark 中使用 kerberos 访问 Vertica
- php - 巴西收货地址正常化状态
- javascript - JS,Express:无论遵循以下指南,都无法在目录中查找视图
- angular - 理解角度分量的问题
- cypress - 检查页面上是否存在记录
- sql - 无法使用 spark SQL 创建表:创建 Hive TABLE (AS SELECT) 需要 Hive 支持;
- php - remove index.php codeigniter in localhost/folder/my_codeigniter/
- django-channels - 使用 django 通道动态地向子类别的消费者发送通知
- c# - 为什么使用firesharp将值发布到firebase实时数据库显示错误