Forum: PC-Programmierung String zerlegen


von Frank H. (Gast)


Lesenswert?

Hi,
ich würde gern einen String zerlegen:
1
char puffer_a[10]  =  {0};
2
char puffer_b[10]  =  {0};
3
char puffer_c[10]  =  {0};
4
char puffer_d[10]  =  {0};
5
char puffer_e[20]  =  {0};
6
const char test_fifo[50]  = "#R;01;E280;02;abcdef0123456789<";
7
8
sscanf(test_fifo,"%[^;],%[^;],%[^;],%[^;],%[^<]",  puffer_a,  puffer_b, puffer_c,  puffer_d,puffer_e);

aber es landed nur #R in puffer_a, die anderen belieben leer.

hab mit scanf und printf noch nie was gemacht/machen müssen ;-)
Hat vielleicht jemand ein Tip oder ne gute Beschreibung, die mir weiter 
helfen können?

MfG Frank

: Verschoben durch Admin
von Mikro 7. (mikro77)


Lesenswert?

1
  sscanf(test_fifo,"%[^;];%[^;];%[^;];%[^;];%[^<]",puffer_a,puffer_b,puffer_c,puffer_d,puffer_e);

von Frank H. (Gast)


Lesenswert?

Danke für die schnelle Antwort, probier ich gleich aus.

Und danke fürs Verschieben, bin aufm nem Mega128a unterwegs, daher hab 
ich in µC & Elektronik geschrieben. Hätte ich vllt dazu schreiben sollen 
;-)

LG Frank

Beitrag #5062628 wurde von einem Moderator gelöscht.
von Frank H. (Gast)


Lesenswert?

Das sieht schon sehr viel besser aus, danke.
Dann hab ich nur noch eine Frage:
Kann sscanf() da auch gleich die Umwandlung von AsciiHex in byteHex 
umwandeln? Also E280 in Output[0] = 0x80; Output[1] = 0xE2?

Grüße Frank

von Dirk B. (dirkb2)


Lesenswert?

Mit "%2hhx" als Formatstring und einen Zeiger auf unsigned char sollte 
es gehen.

Beitrag #5070416 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.