c - 在 switch 语句中错误是 Switch quantity not an integer

标签 c switch-statement

我正在尝试将 C# 代码转换为 C

原来的C#代码是

从下面的代码调用 Hex2Binary 方法

private string DEtoBinary(string HexDE)
        {
            string deBinary = "";
            for (int I = 0; I <= 15; I++)
            {
                deBinary = deBinary + Hex2Binary(HexDE.Substring(I, 1));

            }

            return deBinary;

        }

//Hex2Binary方法

private string Hex2Binary(string DE)
        {

            string myBinary = "";
            switch (DE)
            {
                case "0":
                    myBinary = "0000";
                    break;

                case "1":
                    myBinary = "0001";
                    break;
                    .
                    .
                    .
                 }
      }

但是当我用 C 语言编写时,我采用如下所示的参数

    char *Hex2Binary(char DE[])
    {
    
        char *myBinary = "";
        switch (DE)
        {
            case "0":
             myBinary = "0000";
             break;
    
            case "1":
             myBinary = "0001";
             break;
    
            case "2":
             myBinary = "0010";
             break;
                     .         
                     .   

         }
    }

我得到的错误是 开关数量不是整数。

最佳答案

C 的开关仅适用于整数。在您的情况下,您似乎可以将 switch arg 转换为整数:

#include <stdlib> // for strtol
/* char* is a more typical string representation than char[] */
char *Hex2Binary(char* DE)
{
    char *myBinary;
    long de_as_long = strtol(DE, NULL, 16);
    switch (de_as_long)
    {
        case 0:
         myBinary = "0000";
         break;
        /* ... */

只有当 DE 的所有可能值都可以转换为整数时,这才有效。

关于c - 在 switch 语句中错误是 Switch quantity not an integer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33405248/

相关文章:

c - 为什么我读取文本文件中行数的方法不起作用?k C

c - 同时运行两个无限进程

c - switch 中的多个 fork() 导致指数执行

Scala 使用带有 + 的 Case 语句

java - 字符串 switch 语句

c - 如何检测数组中的重复项并打印非重复项?

c - 写入标准输出和文件

Swift & SpriteKit - 使用 break 的 switch 语句

我可以使用单个 "pthread_mutexattr_t"属性来初始化两个不同的互斥量吗?

java - 如何压缩大型 switch 语句