我有这个:

#include <iostream>
#include <conio.h>

int main ()
{
     char str1[] = "abc123";
     char str2[] = "abc123";
     do
     {
          std::cout << "String: ";
          std::cin >> str2;
     } while (str1 != str2);
     std::cout << "str1 is equal to str2, press any key to quit.\n";
     _getch();
     return 0;
}

当str1等于str2,并且str2是用户设置的值时,程序应结束。问题是,即使我输入与str1相同的值,它也会不断循环,是否放置与str1中相同的内容都没有关系。

最佳答案

您没有正确比较两个字符串,而是在比较两个字符数组的地址。

您必须使用strcmp函数。

while(strcmp(str1,str2)!=0)

或使用std::string类,该类允许您使用重载的运算符==来比较字符串。

关于c++ - C++中的Neverending循环,用于比较两个char,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20440510/

10-12 01:32