我如何比较两个字符串?(小于)

时间:2015-04-29 04:38:32

标签: c++ sorting

我有一个C ++程序,我给了already sorted by ID的大学生UC文件。我需要sortschool name参加,same school按升序排列sorted by ID

ie. Joe Paarmann,3,UCB

我需要实现一个给定的函数

bool compareBySchoolName(学生s1,s2),按学校名称比较两名学生 当且仅当s1学校之前(小于)s2学校

时,它应该返回true

并使用sort函数    排序(学生,学生+ len,compareBySchoolName);

我的问题是如何比较学校名称,因为它们是字符串?我很困惑如何开始这个。谢谢任何帮助非常感谢。

bool compareBySchoolName(Student s1, Student s2) { 
}

5 个答案:

答案 0 :(得分:0)

你可以,你需要决定如何比较字符串。我建议你从左到右按字母顺序排列。如果你不知道你想要实现什么逻辑,你就不能实现逻辑。

答案 1 :(得分:0)

您可以执行以下操作,

a.compareTo(b); //where a and b are your two strings

它将返回一个整数值,并根据您可以决定。更多信息here

答案 2 :(得分:0)

如果您使用的是C ++字符串,请进行比较 C++ String Relational Operators



bool compareBySchoolName(Student s1, Student s2) { 
  return s1.schoolName < s2.schoolName || (s1.schoolName == s2.schoolName && s1.ID < s2.ID);
}
&#13;
&#13;
&#13;

答案 3 :(得分:0)

不同的语言有不同的比较器功能。当你使用比较器功能时,它将获得return int value。因此,您可以在< or >声明中使用return并获取truefalse

在C ++中,您可以这样做:

bool compareBySchoolName(Student s1, Student s2) {
    return s1.schoolName < s2.schoolName || (s1.schoolName == s2.schoolName && s1.ID < s2.ID) 

}

答案 4 :(得分:0)

Ok Buddy,来自此参考:http://www.cplusplus.com/reference/algorithm/sort/

你可以看到comp参数执行以下操作:

  

二进制函数,接受范围中的两个元素作为参数,   并返回一个可转换为bool的值。返回的值表示   是否将作为第一个参数传递的元素视为去   它在第二个特定的严格弱顺序之前定义。该   函数不得修改其任何参数。这可以是一个   函数指针或函数对象。

所以你要做的就是

bool compareBySchoolName(Student s1, Student s2) { 
return s1.SchoolName< s2.SchoolName;
}