gpt4 book ai didi

c++ - 不正确的字符串比较

转载 作者:行者123 更新时间:2023-11-28 00:33:04 24 4
gpt4 key购买 nike

我有一个我完全想不通的问题!

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

例如,如果用户想要输入无穷大,他们必须在字符串中输入“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返回

The position of the first character of the first match. If no matches were found, the function returns string::npos. You should change

if (Temp.find("Pinf")|Temp.find("pinf")) {

if ((Temp.find("Pinf") != string::npos) || (Temp.find("pinf") != string::npos)) {

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com