我有这个:
#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/