Warum kann man in ein char - Feld auch Hexwerte schreiben?
Weil ein char auch nur ein Byte ist.
Egal ob du
Code:
char a = 'a';
char a = 97;
char a = 0x61;
char a = 0b01100001;
schreibst, es passiert immer dasselbe denn
Ascii-Wert von a = 97
HEX(97) = 61
BINÄR(97) = 01100001
Für den Rechner gibt es da keinen Unterschied, er sieht keine Buchstaben, nur Binärzahlen.
Array kopierst du einfach aneinander:
Code:
char a[] = {'a','b','c'};
char b[] = {'1','2','3'};
char c[];
c = a + b; // FALSCH!!!! a und b sind Pointer auf das erste Feldelement, a+b = irgendwo aber nicht da wo es sein soll
for(uint8_t i=3; i>0; i--)c[i] = a[i]; //richtig!!!
for(uint8_t i=3; i>0; i--)c[i+3] = b[i];
Es gibt auch Funktionen wie StrCpy die dasslebe machen. (Siehe array.h)
Oder du könntest einfach in Feld a etwas Platz lassen und da b hineinschreiben
Lesezeichen