我有一个数组说arr[3]
,我使用枚举来索引数组说
typedef enum {
ABC,
DEF,
XYZ
}INDEX;
我将数组中的值存储为ar[ABC] = 100
,依此类推......
现在我有一个字符串为xyZ = 2, dEF = 3, abc = 4
的文件。我解析这个文件并检查字符串。如果字符串是xyZ
,那么我需要将值存储在数组arr[XYZ]
中,依此类推。我在使用枚举映射字符串时感到震惊。我将如何知道包含字符串的字符串的枚举索引文件。请任何想法。希望我很清楚。谢谢
答案 0 :(得分:0)
您可以将'a'
作为索引0
#include <stdio.h>
typedef enum {
ABC,
DEF,
GHI,
JKL,
MNO,
PQR,
STU,
VWX,
YZ,
N
} INDEX;
#define GET_INDEX(x) (((x) - 'a') / 3)
int main(void)
{
char *s[] = {"abc", "def", "mno", "def"};
int i, arr[N] = {0};
for (i = 0; i < 4; i++) {
arr[GET_INDEX(s[i][0])] += 1;
}
for (i = 0; i < N; i++) {
printf("arr[%d]=%d\n", i, arr[i]);
}
return 0;
}