如何将变量值映射到指定的字符串?

  • 本文关键字:字符串 变量值 映射 c
  • 更新时间 :
  • 英文 :


假设我已经(在我看来,不是作为代码(将状态事物与大小为 n

int array[n] = {0,0,1,0,1,0,1,0,1,.......}的整数数组相关联。(此数组中只有 0 和 1(

在我的上下文中,状态"0"表示"锁定"。同样,"1"表示"已解锁"。 我希望每次打印变量,例如int array[3],我想将其状态输出为字符串,而不是变量的实际值。

我该怎么做?有没有办法实际上将0替换为"锁定",1替换为"解锁"?

PS - 我不想用数据类型字符串创建另一个数组,也不想简单地放置一个 if-else 方程。宏的帮助将不胜感激。

当然,您可以使用字符串文字并根据数组插槽的值决定使用哪个。

for (int i = 0; i < n; i++) {
const char *is_locked = (array[i] == 0) ? "locked" : "unlocked";
printf("status of %d: %sn", i, is_locked);
}

这是一个不太理解的作业吗?

我认为迈克·霍斯基的评论是正确的。但是让我再添加一些"宏",也许这个答案会被否决。

#define LOCKED 0
#define UNLOCKED 1
#define PRINT(x) (x == LOCKED) ? printf("locked") : printf("unlocked")

用作

int array[n] = {0,0,1,0,1,0,1,0,1,.......}
or 
int array[n] = {LOCKED,UNLOCKED,LOCKED,.......}
PRINT(array[3]);

最新更新