相关疑难解决方法(0)

如何确定字符串是否是带C++的数字?

我在编写一个检查字符串是否为数字的函数时遇到了很多麻烦.对于我正在编写的游戏,我只需要检查我正在阅读的文件中的一行是否是一个数字(我会知道这是一个参数).我编写了以下功能,我相信它工作顺利(或者我不小心编辑了以阻止它,或者我是精神分裂症或Windows是精神分裂症):

bool isParam (string line)
{
    if (isdigit(atoi(line.c_str())))
        return true;

    return false;
}
Run Code Online (Sandbox Code Playgroud)

c++ visual-c++

117
推荐指数
13
解决办法
27万
查看次数

如何将C++字符串转换为int?

可能重复:
如何在C++中将字符串解析为int?

如何将C++字符串转换为int?

假设您希望字符串中包含实际数字(例如,"1","345","38944").

另外,让我们假设你没有提升,你真的想用C++方式来做,而不是狡猾的旧C方式.

c++ int parsing stdstring

46
推荐指数
2
解决办法
14万
查看次数

如何在C++中将字符串转换为double?

如何在C++中将字符串转换为double?我想要一个函数,当字符串不是数字时返回0.

c++

34
推荐指数
6
解决办法
12万
查看次数

如何验证字符串是否有效(即使它有一个点)?

我一直在寻找一种方法来确定我的字符串值是否是一个有效的双倍,而我还没有找到一种方法也不会拒绝一个带有一个点的数字...

在我的搜索中,我找到了这个

如何确定字符串是否是带C++的数字?

而Charles Salvia给出的答案是

bool is_number(const std::string& s)
{
std::string::const_iterator it = s.begin();
while (it != s.end() && std::isdigit(*it)) ++it;
return !s.empty() && it == s.end();
}
Run Code Online (Sandbox Code Playgroud)

这适用于任何没有点的数字,但有点的数字会被拒绝...

c++ string double

10
推荐指数
3
解决办法
9706
查看次数

最优雅的方法来检测String是否是一个数字?

是否有更好,更优雅(和/或可能更快)的方式

boolean isNumber = false;
try{
   Double.valueOf(myNumber);
   isNumber = true;
} catch (NumberFormatException e) {
}
Run Code Online (Sandbox Code Playgroud)

...?


编辑:因为我不能选择两个答案我正在使用正则表达式,因为a)它优雅而且b)说"Jon Skeet解决了问题"是一个重言式,因为Jon Skeet本身就是所有问题的解决方案.

java string parsing numbers

8
推荐指数
4
解决办法
1万
查看次数

标签 统计

c++ ×4

parsing ×2

string ×2

double ×1

int ×1

java ×1

numbers ×1

stdstring ×1

visual-c++ ×1