Number to string Mapping C

时间:2015-10-30 10:33:59

标签: c string struct enums integer

我有一组数字及其对应的字符串

1 - >关闭

2 - > Hibernet

3 - >睡眠

4 - >重新启动

5 - >锁

此列表可以将更大的数字映射到字符串

我很高兴知道通过使用C程序可以实现这一点的任何方式,我认为如果可以通过面向对象的C#,C ++轻松实现。我认为放#define很难。

输入为整数并返回相应的字符串值。如果我们可以使它非常有效,那将是非常有帮助的,因为我们可能会遇到这么多次。

1 个答案:

答案 0 :(得分:1)

如果数字是连续的并且接近于0,那么自然解决方案(在许多编程语言中)就是使用数组:

const char *strings[] = { "Shutdown", "Hibernet", "Sleep", "Restart", "Lock" };

printf("Look, the second string is %s\n", strings[1]);

这将打印Hibernet。唯一需要注意的是C数组索引是从0开始的。

如果数字是“到处都是”,则需要一个不同的解决方案,可能是二叉树,或者只是一个可以进行二进制搜索的排序数组。像这样的数据类型没有内置到C中,您必须使用库或自己实现它们。