你好这不是我的整个代码,但是我只是在用户输入单词“NewYork”时我需要打印信息,当我调试时,即使我输入单词“NewYork”也没有打印。所以任何人都可以告诉可能是什么问题?谢谢
int main(){
Panel *panelptr;
int count,len,wid;
double heg;
char locat[30];
cout<<"how many panels do you need to create ? "<<endl;
cin>>count;
panelptr = new Panel[count];
assert(panelptr!=0);
for(int i=0; i< count; i++){
cout << "Enter the length: ";
cin >>len;
cout << "Enter the width: ";
cin >> wid;
cout << "Enter the height: ";
cin >> heg;
cout<<"Enter the location: ";
cin >>locat;
panelptr[i].setPanel(len,wid,heg,locat);
if(locat == "NewYork")
panelptr->print();
}
delete [] panelptr;
system("pause");
return 0;
}
答案 0 :(得分:2)
您正在将char数组与字符串进行比较。使用strcmp()进行比较:
if (strcmp(locat, "NewYork") == 0) {
}
答案 1 :(得分:2)
您无法像使用if(locat == "NewYork")
那样比较字符数组。您有两种选择:
1)使用strcmp()
#include <cstring>
int main()
{
char locat[30];
if (strcmp(locat, "NewYork") == 0)
{
// Do what you like.
}
}
2)使用string
#include <string>
int main()
{
std::string locat;
if (locat == "NewYork")
{
// Do what you like.
}
}
答案 2 :(得分:0)
对于字符串比较,您应使用strcmp()
函数代替==
。你正在使用的只是比较两个char*
,你不能指望它们是相同的
因此,请从
if(locat == "NewYork")
panelptr->print();
到
if(strcmp(locat, "NewYork") == 0)
panelptr->print();
strcmp()
在string.h
标头中定义,因此包含
您的计划中的#include<string.h>