c - 用二进制值切换大小写值?

标签 c

我正在做一个 switch case,其中 case 值需要是二进制数字,例如 01,010,0100,0,00,000, 等等。

switch(Code)
{
          case 0:
               {
                   printf("A");
                   break;
                   }
          case 00:
               {
                   printf("B");
                   break;
                   }
          case 000:
               {
                   printf("C");
                   break;
}

我知道如果我输入 000,它将被存储为 0。我的问题是你如何输入 000 以便我可以得到 printf("C")

最佳答案

我无法想象您为什么要区分这些数字,因为在任何表示中它们都是相同的数字,但我想您必须将它们作为字符串来检查。 您不能将字符串放入 C 中的 switch 语句中,因此您只需要有一系列 if/else 语句:

void selectString(char *input)
{
    if(strcmp(input, "0") == 0)
    {
        printf("A");
    }
    else if(strcmp(input, "00") == 0)
    {
        printf("B");
    }
    else if(strcmp(input, "000") == 0)
    {
        printf("C");
    }
}

话虽如此,您所问的问题看起来很像XY 问题,也就是说,您在问如何做奇怪的事情 Y,因为您认为您需要这样做才能解决 X。你想做什么?

关于c - 用二进制值切换大小写值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11904639/

相关文章:

c++ - C中的二维数组如何变成一维数组?

c - 如何将 64 位 int 转换为二进制表示?

c++ - 如何读取大量数字?

c - 使用 uint64_t 32 位和 64 位架构中的结构填充差异

c++ - TCHAR 仍然相关吗?

cudaPrintfInit 和 cudaPrintfDisplay 失败

c - 段错误数组在 ubuntu 中 float 但在 osx 中不 float

c - 使用 select() 时,我可以在 readfds 和 writefds 集中添加相同的描述符吗?

python - 如何通过 C API 终止 python 脚本

c - 使用trace32读取宏值