我有:
struct student{
string name,
float GPA
};
我想按字母顺序排列名字(名字,如果名字相同,请通过姓氏排列);
所以我认为我需要一个separateFirstName函数和一个separateLastName函数,但我不知道这些函数返回哪个值。如果它是一个字符串,我在比较时如何使用它(多次使用它)
例如:
struct student{
string name,
float GPA
};
student Student[n];
void input(student Student[], int n){ ... };
现在,我想按字母顺序安排Student [i] .name(i从0到n)
首先,我会比较Student [i] .name的名字,如果它们是相同的,我会比较它们的姓氏,如果它们仍然相同,我会随机排列< / p>
例如:
Nguyen Nhu Anh
So Van Anh
Sa Hi Ha
Vo Duc Hung Son
所以我认为我需要一个separateFirstName函数和separateLastName函数
if string s="Vo Duc Hung Son";
然后第一个名字是Son,姓氏是Vo
但问题是,我不知道这些函数应返回哪个值。如果它是一个字符串,我在比较时如何使用它(多次使用它);
提前谢谢
答案 0 :(得分:1)
struct Name{
string first,
string last
};
struct student{
Name name,
float GPA
};
现在您可以编写一个函数来比较name.first
和name.last
答案 1 :(得分:0)
我不确定我是否理解。但是你有字符串名称,例如:name =“Dennis Bond”,你想要两个字符串。 firstname =“Dennis”和secondname =“Bond”?
void split_name (string name, string& firstname, string& secondname){
istringstream is(name);
is >> firstname >> secondname;
}
void split_name (string name, vector<string>& split){
istringstream is(name);
string word;
while (is >> word ) split.push_back(word);
}