你如何比较字符串作为参数?

How do you compare strings as arguments?

我正在尝试编写一个程序来读取姓氏介绍并返回学生的信息(生日、组等)。编译器不识别 == 运算符,我猜它不知道要比较什么,地址还是值?(我会给予解释)

我看过类似的案例,他们建议使用 bool 运算符。据我所知,bool 运算符只是 returns true 或 false(我不知道如何使用它来打印学生信息)

我也在考虑使用 char 或使用 strcmp(用于比较的 srting 函数)。

   void find_fam ( struct st student[], int length, string & fam)
    
    {
        for(int i=0; i<length; i++)
            if ( student[i]== fam[i]){
        
        cout << "Student:\n"<< student[i].imia << student[i].otchestvo << student[i].familia << 
student[i].gruppa << student[i].grozhdenia);
                                                             
            }
    }

例如,如果您有这样的结构

struct st
{
    std::string name;
    int age;
};

那么您可能想要将 fam 与您的结构

的那个成员进行比较
if (student[i].name == fam)

所以现在 .name 是您要比较的相应 std::string。否则,您正在尝试将 std::stringst 结构进行比较。

在您展示的这个示例中,您将结构的整个实例与无效的字符串进行比较。 您应该做的是将字符串属性与您接收的字符串进行比较。 假设学生的家庭名为family,类型为string:

if(student[i].family==fam)
{
   //statements
}