这是我的代码。
#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;
class Dragon
{
public:
char element[30];
int energy;
};
int main()
{
Dragon dragon;
char name[30];
cout<<"Enter element.\n\n";
cin>>name;
if(name=='Hell')
{
strcpy(dragon.element,"Hell Dragon");
dragon.energy=15000000;
}
else if(name=='Dark')
{
strcpy(dragon.element,"Dark Dragon");
dragon.energy=1000000;
}
else
cout<<"Unknown Dragon.";
cout<<"\nDragon's element = "<<dragon.element<<"\nDragon's energy level = "<<dragon.energy;
getch();
return 0;
}
我自己在C ++中尝试过这个程序,但在修复以下错误时遇到了问题 -
如果您对如何修改此内容有所了解,请帮助我。
谢谢。
答案 0 :(得分:0)
问题的一个原因是==
无法用于比较字符数组的内容。
解决方案1:使用std::string
std::string
数据类型是C ++中用于文本字符串的首选数据结构。
std::string
已超载==
用于比较字符串。
std::string
还有find
方法来搜索子字符串。
解决方案2:使用strcmp
C语言使用字符串数组。 C语言还具有用于处理字符数组的str*()
函数。
C ++语言使用str*()
函数来处理C-Style字符串(字符数组)。
使用strcmp
将字符数组与字符串文字进行比较:
if (strcmp(name, "Hell") == 0)
您可能还希望使用strstr
查找子字符串,或使用strchr
查找字符数组中的字符(C样式字符串)。