Hallo hat jemand ne idee wie man unkomliziert tausender hunderter zehner in einer aufteilt. bsp 1098= 1 0 9 8 bsp 876= 8 7 6 bsp 98=9 8 Danke euch schonmal
1 | int i, n, digits[MAX_DIGITS]; |
2 | |
3 | n = 1098; |
4 | |
5 | i = 0; |
6 | do { |
7 | digits[i++] = n % 10; |
8 | } while ((n /= 10) > 0); |
habe ich hinbekommen besten dank. noch eine frage wie kann ich einen datensatz aufsplitten. z.b $WI;1;230;009;1012;1;12*12 in einer struct benötige ich rx_data.windrichtung=230 rx_data.windgeschwindigkeit=9 rx_data.luftdruck=1012 rx_data.tempvorzeichen=1(+) /0 (-) rx_data.temperatur=12 danke
1 | #include <string.h> |
2 | |
3 | int split(char* zeile, char* trenner, char teil[][80], int maxStrings) |
4 | {
|
5 | int index = 0; |
6 | char* token = strtok(zeile, trenner); |
7 | |
8 | while(token != NULL && index < maxStrings) |
9 | {
|
10 | strcpy(teil[index++], token); |
11 | token = strtok(NULL, trenner); |
12 | }
|
13 | |
14 | return index; |
15 | }
|
16 | |
17 | char str[40} = "$WI;1;230;009;1012;1;12*12"; |
18 | char teil[7][6]; |
19 | |
20 | if(split(str, ";", teil, 7) == 7) |
21 | {
|
22 | rx_data.windrichtung= atoi(teil[2]); |
23 | rx_data.windgeschwindigkeit=atoi(teil[3]); |
24 | rx_data.luftdruck=atoi(teil[4]); |
25 | rx_data.tempvorzeichen=atoi(teil[5]); |
26 | rx_data.temperatur=atoi(teil[6]); //Damit 12 drinnen steht, muss der letze String aber 12 lauten. Warum lautet der überhaupt 12*12? |
27 | }
|
Gruß Robert
Hallo Das sieht ja gut aus nur leider findet er strtok nicht in string.h
Er? Wer ist "er"? Hast DU schon mal selbst Deine Headerdateien nach strtok durchsucht?
Matthias wrote: > ... nur leider findet er strtok nicht in string.h So so. Dem Himmel sei dank gibt es eine wunderschöne Referenz im Netz: http://www.nongnu.org/avr-libc/user-manual/group__avr__string.html Ich gehe mal davon aus, dass es sich um den AVR-GCC handelt.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.