我有一个问题,我根本无法解决!

在我的程序中,用户输入要排序的数字。我必须能够排序无穷大,负无穷大和所谓的“空”(这些我在程序的早期定义)

例如,如果用户要输入无穷大,则必须在字符串中输入“ Pinf”。

我的问题是我将用户输入的内容存储在std :: string中,然后即使我输入了数字3,所以字符串还是“ pinf”或“ Pinf”,所以字符串仍然是“ 3”,它仍然进入if声明,我做错了什么?

我的代码如下;

    string Temp;
    cin>> Temp;
    if (Temp.find("Pinf")||Temp.find("pinf")) {
        Num = Pinfinity;
    }


它认为if语句每次都是正确的。

最佳答案

如果您仅搜索Pinf或pinf,则可以使用它。请注意,逻辑或运算符为||

 if (Temp == "Pinf" || Temp == "pinf") {

关于c++ - 字符串比较不正确,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22102210/

10-11 06:47