C Problem!

Hallo LeserIn,

folgendes Problem habe ich: In der Variablen „value“ vom Typ long soll eine beliebige Ganzzahl gespeichert werden. Jetzt sollte ich diese Ganzzahl so bearbeiten, dass am Schluss nur noch die letzten beiden Ziffern übrig bleiben und in ein char-Array abgelegt werden, also aus 1234567 soll 67 extrahiert werden!

So wollte ich vorgehen:

long value;
static byte post[] = „…“;
static byte pre[] = „…“;

value = 123456789;
sprintf((char *)post, „%ld“, value);
i = strlen((char *)post);

Jetzt weis ich die Länge des char-Arrays. Kann ich nun irgentwie über post[i] und post[i-1] auf die letzten beiden Zeichen zugreifen und diese dann verbinden und in der Variablen „pre“ speichern???

Bin für jede Hilfe dankbar!

Gruß Uli

long value;
static byte post[] = „…“;
static byte pre[] = „…“;

value = 123456789;
sprintf((char *)post, „%ld“, value);
i = strlen((char *)post);

return post+i-2;

ist aber haesslich, da der Pointer dann auf eine blockfremde lokale Variable zeigt. Also besser noch ein strcpy auf eine blockeigene lokale Variable oder eine dynamisch erzeugte (Block=aufrufende Stelle).

Ciao Lutz

Hallo Lutz Lehmann,

vielen Dank für Deine Hilfe!

So hab ich es jetzt gelöst:

strcpy((char *)pre,(char *)(post+i-2));

Gruß Uli

'n Tip
Hallo Uli,

warum nicht so:

char str[3];
sprintf (str, „%.2d“, value%100);

Gruß, Ralf