字符串比较不正确
Incorrect string comparison
我有一个问题,我根本想不通!
在我的程序中,用户输入要排序的数字。 我必须能够对无穷大、负无穷大和所谓的"空性"(我在程序早期定义的这些)进行排序。
例如,如果用户想要输入无穷大,则必须在字符串中输入"Pinf"。
我的问题是我将用户输入存储在 std::string 中,然后检查字符串是"pinf"还是"Pinf",即使我输入了数字 3,所以字符串是"3",它仍然进入 if 语句,我做错了什么?!
我的代码如下;
string Temp;
cin>> Temp;
if (Temp.find("Pinf")||Temp.find("pinf")) {
Num = Pinfinity;
}
它认为 if 语句每次都是正确的。
1.错误 - 您使用的是|
而不是||
。
2.错误 - find
返回
第一个匹配项的第一个字符的位置。如果没有匹配项 找到,该函数返回字符串::NPOS。 你应该改变
if (Temp.find("Pinf")|Temp.find("pinf")) {
自
if ((Temp.find("Pinf") != string::npos) || (Temp.find("pinf") != string::npos)) {
如果您只是搜索 Pinf 或 pinf,那么您可以使用它。请注意,逻辑或运算符||
。
if (Temp == "Pinf" || Temp == "pinf") {
|
是按位或运算符。使用||
代替|
if ( Temp.find("Pinf") != npos || Temp.find("pinf") != npos )
相关文章:
- 使用2个键的cpp-stl::优先级队列排序不正确
- 正弦级数方程计算不正确
- 我试图制作一个程序,要求用户输入问题和答案,但程序循环不正确
- 密码登录程序将永远循环并显示不正确的结果
- 在C++中返回不正确的楼层函数值
- 形状对象的旋转和缩放不正确C++
- C++ 读取文件读取文件不正确
- 关于类的 Python 文档 - 对C++的引用不正确
- 特征 LLT 模块给出不正确的结果?
- glibcxx STL 在实现 std::valarray::sum() 时是否不正确?
- 如果语句逻辑不正确
- 来自逆 vp 矩阵和相机位置的光线方向不正确
- 不正确的操作数类型 MSVC
- 数组填充了不正确的值
- 不正确的比较和交换计数器输出用于快速排序功能
- 简单的程序比较阵列运行但给出不正确的结果
- C++ 具有自定义比较函数的优先级队列在 push() 上行为不正确
- 字符串比较不正确
- 比较函数使用重载运算符返回不正确的结果
- 不能正确比较两个数字