你如何比较字符串作为参数?
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::string
与 st
结构进行比较。
在您展示的这个示例中,您将结构的整个实例与无效的字符串进行比较。
您应该做的是将字符串属性与您接收的字符串进行比较。
假设学生的家庭名为family,类型为string:
if(student[i].family==fam)
{
//statements
}
我正在尝试编写一个程序来读取姓氏介绍并返回学生的信息(生日、组等)。编译器不识别 == 运算符,我猜它不知道要比较什么,地址还是值?(我会给予解释)
我看过类似的案例,他们建议使用 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::string
与 st
结构进行比较。
在您展示的这个示例中,您将结构的整个实例与无效的字符串进行比较。 您应该做的是将字符串属性与您接收的字符串进行比较。 假设学生的家庭名为family,类型为string:
if(student[i].family==fam)
{
//statements
}