在c中为两个不同的数组分配相同的下标

时间:2015-04-09 17:09:16

标签: c arrays

我似乎无法找到我正在寻找的答案。我正在开发一个涉及创建两个数组的项目。一个存储一个字符串,另一个存储一个数字(名称和年龄)。我必须按照输入的顺序打印数组,然后按字母顺序排列。我可以按字母顺序排列很好,但是我无法按照正确的名字排列。有没有办法在C中为数组分配与另一个数组相同的下标?

2 个答案:

答案 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])。