假设我已经(在我看来,不是作为代码(将状态事物与大小为 nint 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]);