gpt4 book ai didi

c++ - 为什么 str != "hello"&& "goodbye"不起作用?

转载 作者:太空狗 更新时间:2023-10-29 23:32:03 24 4
gpt4 key购买 nike

如果输入字符串“hello”或“goodbye”,我将尝试退出“do”函数,此函数仅适用于“hello”而不适用于“goodbye”。任何人都可以向我解释我的功能有什么问题吗?另外,如果有更好的方法,我也想看看。谢谢

“你好”|| “再见”“你好”、“再见”

#include <iostream>
#include <string>



int main()
{
std::string str;
do {

std::cout << "Say Hello, sir.";
std::cin >> str;

} while (str != "Hello" && "Goodbye");

std::cout << "You're rude, bro";
}

我希望“do”语句在输入“Hello”或“Goodbye”后退出并继续到 cout 语句。

最佳答案

条件 str != "Hello"&& "Goodbye" 实际上是 (str != "Hello") && "Goodbye"&& 运算符不会连接 != 的多个操作数。它是一个完全独立的运营商。

&&的第一个操作数,str != "Hello",比较str"Hello" ,这就是你想要的。第二个操作数 "Goodbye" 不是您想要的。

"Goodbye"&&的操作数时,它被转换为bool。 (具体来说,这个字符串文字首先被转换为指向其第一个字符的指针,然后转换为 bool。)将非空指针转换为 bool 的结果是

因此 str != "Hello"&& "Goodbye"str != "Hello"&& true 相同,与 str 相同!= "你好"

你想要的条件是 str != "Hello"&& str != "Goodbye"

关于c++ - 为什么 str != "hello"&& "goodbye"不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56032141/

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