我必须组织一个结构或一些人的名字,姓氏和年龄的数组,然后按字母顺序组织它们,使用字符串库将它们从输入文件写入输出文件。
这是我明天下午的实验室的部分内容,我的TA表示可能会要求我们完成上述任务。我正试图从比我自己更有经验的人那里获得意见或建议,所以我会比上次实验室更加准备,我不会那么热。
我被困了,关于我应该从哪里开始的任何建议?
答案 0 :(得分:1)
那么,读取和写入输入和输出应该是没脑子的(打开文件,读/写,然后在完成后关闭它)。
诀窍是将那些讨厌的字符串排序。
我看strnig排序的方式是一个数组排序数组。第一个数组级别是对所有结构的迭代,而第二个是对名称的所有字母的迭代(请注意,某些名称比其他名称更长)
1.首先排序第一列 - 所有第一个字母
2.然后是所有子列 - 在每个第一个字母组中,您对第二个字母进行排序
3.重复1和2,直到你的字母用完为止。
字母数组的排序与排序字节数组(AKA字符)相同,如果您正在使用类似冒泡排序的算法,则可以无缝地处理子数组。
希望这个想法有所帮助
答案 1 :(得分:0)
您可以使用string.h库中的strcmp,它会比较两个字符串并返回结果。 您应该从输入文件中读取每个字符串并保留在内存中。您可能会使用一个列表,例如链表。添加时,您可以按字母顺序组织它们。这是一个例子:
这是针对您的问题的简单算法。
答案 2 :(得分:0)
棘手的部分是实现两个字符串的比较。 strcmp函数只告诉你字符串是否相同。你可以遍历char数组来完成它。
完成后,剩下的排序很简单。