ich habe für mein aktuelles Problem schon ein paar Bücher durchsucht, um eine Lösung zu finden, aber vielleicht könnt ihr mir noch helfen:
Ich übergebe auf der Kommandozeile folgenden Hexwert:
./ascii 4B76BA1D06
Ich übergebe hier ein Array auf Characters und diese Werte sollen quasi zu dem gewandelt werden, wie es sich oben darstellt.
Aufgrund von vorheriger Hilfen, hier durch dieses Forum, habe ich ein paar Zeilen Code erstellt die es
mir ermöglichen daraus, aus dem Array von Char, ein Array mit den oben genannten einzelnen Werten darzustellen.
Mein Problem ist, dass das Ergebnis des Arrays für die nächste Verwendung nur zu einem Teil verarbeitet wird,
weil beispielsweise auf ein "ENDE" = '\0' String erkannt und reagiert wird.
hier der Code mit den teilen die ich schon aus dem Forum hier erfragt habe.0-9: 4 newString 04
A-F: B newString 0b
0-9: 7 newString 07
0-9: 6 newString 06
A-F: B newString 0b
A-F: A newString 0a
0-9: 1 newString 01
A-F: D newString 0d
0-9: 0 newString 00
0-9: 6 newString 06
################
INT 4 HEX 04
INT 11 HEX 0b
INT 7 HEX 07
INT 6 HEX 06
INT 11 HEX 0b
INT 10 HEX 0a
INT 1 HEX 01
INT 13 HEX 0d
<--- Hier fehlen noch 00
<--- und 06
################
Code: Alles auswählen
void hexAscii2Int( unsigned char *string, unsigned char *newString )
{
for(;*string != '\0;' *string++)
{
if ( *string >= '0' && *string <= '9')
{
*newString = *string - '0';
printf ("0-9: %c newString %02x \n", *string, *newString);
}
else
{
if ( *string >= 'A' && *string <= 'F' )
{
*newString = (10 + *string) - 'A';
printf ("A-F: %c newString %02x \n", *string, *newString);
}
}
*newString++;
}
*newString = '\0';
}
int main ( int argc, char *argv[])
{
int i = 0;
int n = 0;
unsigned char septs[160] = "";
unsigned char sms[160] = "";
unsigned char *text;
unsigned char *neu;
text = &septs;
neu = &sms;
int bin[160];
// use the commandline arguments
// and give back a integer
hexAscii2Int(argv[1], bin);
//
printf("################ \n");
// now check the score from
// function.
for(i=0;bin[i]!= '\0';i++)
{
printf("INT %i HEX %02x \n", bin[i], bin[i]);
}
// script end
printf("################ \n");
// correct end
return 0;
}
Für mich stellen sich 2 Fragen, wie schaffe ich es, dass die Werte / Listen trotz ihres Ende Strings verarbeitet werden und zweitens habe ich mich dieses mal verständlicher ausgedrückt?
Vielen Dank fürs reinschauen!