我是C ++的新手,TC是我的编译器。(是的,我知道它已经老了,但它是我用来学习的东西。)
我在理解char []的比较时遇到了问题。 这是我的代码。
char chi[3];
void input1()
{
int xtemp,ytemp;
gotoxy(60,2);
cout<<"Enter which piece you";gotoxy(60,3);cout<<"would like to select.";gotoxy(60,4);cout<<"(Eg.a1,a2,a3.):";
cin>>chi;
if(chi=="a1"){xtemp=0;ytemp=0;}
if(chi=="a2"){xtemp=1;ytemp=0;}
if(chi=="a3"){xtemp=2;ytemp=0;}
//.....
if(chi=="h7"){xtemp=6;ytemp=7;}
if(chi=="h8"){xtemp=7;ytemp=7;}
cout<<xtemp<<ytemp;
getch();
}
每次我运行我的程序,其中这个函数是其中的一部分,我尝试cin值liek a1,a2,g8等。但是,我的cout声明总是显示99.请原谅我的无知。提前致谢! :)
-CaptainAwesome
答案 0 :(得分:2)
由于"a1"
是指向常量的指针,if(chi=="a1")
会询问chi
是否指向此相同的常量。由于chi
是一个数组,其内容可以修改而不是指向任何常量的指针,因此永远不会成立。你想比较两个字符串吗?如果是这样,您希望使用比较字符串的strcmp
函数。
答案 1 :(得分:2)
chi== "a1"
是一个指针比较,总是会给出错误。
要检查字符串是否相等,您需要strcmp(chi,"a1") == 0