声明多字符字符的警告和错误

时间:2017-10-07 17:39:22

标签: c++

Screenshot 1

这是我的代码。

#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 ++中尝试过这个程序,但在修复以下错误时遇到了问题 -

Errors and Warnings

如果您对如何修改此内容有所了解,请帮助我。

谢谢。

1 个答案:

答案 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样式字符串)。