In der switch-Anweisung Fehler-Switch-Menge nicht ein integer
Ich versuche zu konvertieren C# - code in C
Ursprünglichen C# - code ist
Aufrufen Hex2Binary Methode von unten code
private string DEtoBinary(string HexDE)
{
string deBinary = "";
for (int I = 0; I <= 15; I++)
{
deBinary = deBinary + Hex2Binary(HexDE.Substring(I, 1));
}
return deBinary;
}
//Hex2Binary Methode
private string Hex2Binary(string DE)
{
string myBinary = "";
switch (DE)
{
case "0":
myBinary = "0000";
break;
case "1":
myBinary = "0001";
break;
.
.
.
}
}
Aber wenn ich in C schreiben, ich nehme argument wie unten gezeigt
char *Hex2Binary(char DE[])
{
char *myBinary = "";
switch (DE)
{
case "0":
myBinary = "0000";
break;
case "1":
myBinary = "0001";
break;
case "2":
myBinary = "0010";
break;
.
.
}
}
Ich bin immer Fehler wie
Schalter Quantität, nicht eine ganze Zahl ist.
Wie viele Fälle haben Sie? Sie konnte einfach
Ich habe 15 Fälle.Mein Hauptproblem ist, wie zu akzeptieren, string-argument in der Methode char *Hex2Binary(char DE[])
if-else
statt. Gibt es vielleicht andere Probleme in deinem C-code als auch. Ich glaube nicht, dass C ermöglicht eine switch
auf einer Schnur.Ich habe 15 Fälle.Mein Hauptproblem ist, wie zu akzeptieren, string-argument in der Methode char *Hex2Binary(char DE[])
InformationsquelleAutor user2357643 | 2015-10-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
C-switch funktioniert nur mit Ganzzahlen. In Ihrem Fall sieht es aus wie Sie können konvertieren Sie den Schalter arg eine integer:
Dies funktioniert nur, wenn alle möglichen Werte von DE kann in eine Ganzzahl konvertiert.
Check out stackoverflow.com/questions/20654424/... für den hex-fähige version von atoi (Antwort editiert, es zu benutzen)
InformationsquelleAutor John3136
Den Schalter() akzeptiert nur ganzzahlige.
Müssen Sie passieren die integer für switch-nicht ein Zeichen-array.
DE ist ein Zeichen-array. Ändern, zu geben, die position oder die ganze Zahl, die Sie wollen, geht auf den Schalter.
InformationsquelleAutor
C nicht lassen, wechseln Sie auf
char
arrays oder strings, aber es lässt Sie schaltenchar
s:aber wirklich, es gibt einen viel einfacheren und kürzeren Weg, dies zu tun:
und Sie können eine Schleife verwenden, um dies zu vereinfachen weiter.
InformationsquelleAutor nneonneo