我对C ++有点陌生。我有Java和Python的经验。在Java中,有一个方便的函数“ .equals()”来比较两个字符串。您当然不会在Java中使用“ ==”,因为它会测试两个对象是否完全相同,即I.E.。在内存中有相同的位置。

但是,在包括该网站在内的各种网站上都被告知,“ ==”是比较两个字符串是否相等的首选方法。如果您只想在两个字符串相等的情况下执行一条语句,这似乎很好,因此

string one = "foo"
string two = "foo"

if (one == two)
{
    cout << "They are equal";
}


尝试使用相同的运算符或“!=”来计算两个字符串并在不相等的情况下执行语句时,事情就没有多大意义了。

我尝试通过((first == second)== 0)和(first!= second)来执行此操作,并且输出为true(1)。键入“ DONE”后,下面的程序应终止,但是不会发生。

string first = "DONE";
string second = "";
while ((first==second)==0)
{
    cout << "Enter a line of text: ";
    cin >> second;
    cout << ((first==second)==0);
}

最佳答案

正确的运算符是!=,并且应该起作用。

这是有关字符串比较运算符的文档:http://www.cplusplus.com/reference/string/string/operators/

这应该工作:

string first = "DONE";
string second = "";
while (first != second)
{
    ...
}


当然,如果您实际上不改变第二秒,它将永远循环。

关于c++ - C++的新功能,使用“==”的字符串相等问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32429647/

10-11 22:47
查看更多