我有这个:
#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++ 中的无休止循环,比较两个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20440510/