我似乎无法找到我正在寻找的答案。我正在开发一个涉及创建两个数组的项目。一个存储一个字符串,另一个存储一个数字(名称和年龄)。我必须按照输入的顺序打印数组,然后按字母顺序排列。我可以按字母顺序排列很好,但是我无法按照正确的名字排列。有没有办法在C中为数组分配与另一个数组相同的下标?
答案 0 :(得分:1)
声明一个这样的结构:
struct person
{
char name[30];
int age;
};
声明一个这样的数组:
struct person record[2];
像这样使用它(例子):
strcpy(record[0].name, "Raju");
record[0].age = 24;
现在record[0]
有一个名字和一个年龄。当你排序时,他们会在一起。
答案 1 :(得分:0)
假设字符串数组是2d矩阵,其中每行包含一个名称字符串,如果要保持两个数组分开,则创建第三个索引数组,并根据数组排序第三个数组名。然后使用第三个索引数组显示名称和年龄。
如果字符串数组是指向字符串的指针数组,则可以创建一个指向字符串指针数组的数组,然后根据字符串对索引数组进行排序,然后使用排序索引显示两个字符串排序的数组。
如果使用提供比较函数的sort函数,则创建一个指向名称数组(pointer [i] =& names [i])的指针数组,根据名称对指针进行排序,然后转换使用指针减法指向索引(index = pointer [i] - & name [0])。