将char与变量字符串

时间:2015-07-31 18:48:35

标签: c++

我是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

2 个答案:

答案 0 :(得分:2)

由于"a1"是指向常量的指针,if(chi=="a1")会询问chi是否指向此相同的常量。由于chi是一个数组,其内容可以修改而不是指向任何常量的指针,因此永远不会成立。你想比较两个字符串吗?如果是这样,您希望使用比较字符串的strcmp函数。

答案 1 :(得分:2)

chi== "a1"是一个指针比较,总是会给出错误。 要检查字符串是否相等,您需要strcmp(chi,"a1") == 0