gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 03:34:57 26 4
gpt4 key购买 nike

我正在尝试将 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com