如何使用字符串创建一个int数组以进行索引

时间:2013-05-26 09:05:10

标签: c arrays integer

我不确定这是什么,所以我不知道谷歌要学习如何做到这一点。

我在C编程。

我有一系列的整数,我希望用字符命名;

例如

char s1[21] = "firsta1"
char s2[21] = "seconds2"

等等

那么int的数组,假设int数组被称为index。

index[s1] = 7
index[s2] = 14

等等。

感谢,

2 个答案:

答案 0 :(得分:1)

据说这是关联数组。在shell编程中,我们有关联数组。在c ++和java中,我们可以使用Maps [HashMap,TreeMap]

来实现这一点
Map<Key,Value>

键用于标识值;键应该是唯一的。

我认为C没有内置设施。也许你可以通过其他方式实现这一点。

你创建那些字符串s [21] =“str”...将它传递给某个函数,例如hash。

   hash(char *str)
   {
      // Keep a cache (a table here its array)
       lookup the string in table;
       if(present)
           return index;           
       else
           store str in table with appropriate index;
   }

使用

       array[hash(str)] 

做你想做的事。这是我的想法,也可能有其他一些最好的方法。或者某些库(例如:Boost)可能具有关联数组。

答案 1 :(得分:-1)

您正在寻找哈希映射或哈希表(同一事物的两个名称)。那些不是数组,即使它们在某些语言中被错误地命名,所以在(我看着你,PHP)。根据定义,数组是一个存储区域,索引为区域中的偏移量,这意味着您必须使用数字对其进行索引。

哈希映射在查找之前在键上应用哈希函数,因此它们将字符串键转换为数字。