如何用字符串文字进行字符串比较?

时间:2014-04-21 05:38:32

标签: c++ if-statement

我在检查变量值是否匹配时遇到问题。我正在使用if语句来检查健康变量是否具有优异的值,但下面的代码给出了错误。

#include <iostream>

using namespace std;

class person {
private:
    char health[20], city[20], gender[20];
    int age;
public:
    void getdata();
    void dispdata();
};

void person::getdata()
{
    cout <<" Enter the person's health";
    cin >> health;
    cout << "Enter your age";
    cin >> age;
    cout << " Do you live in city";
    cin >> city;
    cout << "Gender: male or female";
    cin >> gender;
}

void person::dispdata()
{
    if(health == 'excellent') {
        cout << "The person can be insured\n";
        cout << "his premium is $4 per thousand and his policy amount cannot exceed Rs. 200,000.";
    } else {
        cout << "Error";
    }
}
int main()
{
    person s1;
    s1.getdata();
    s1.dispdata();
    return 0;
}

每当我使用if语句检查健康状况是否= =优秀时它都不起作用。我甚至尝试过使用双引号和单引号。

1 个答案:

答案 0 :(得分:0)

使用strcmp之类的函数来比较C ++中的字符串。

if(strcmp(health,"excellent")==0)
{
 ...
}

在C ++中,您无法直接将char数组创建的字符串与==进行比较,也可以将double-qoutes用于字符串C ++。单引号是为了字符 您可以将字符串创建为std::string类的oblect,然后使用重载运算符来比较C ++中的字符串。阅读this