DINT erste 3 Stellen entfernen



  • Hallo alle Miteinander,

    Sprache: Ansi-C

    Zunächst einmal:

    Die Funktion Time(NULL) gibt zur Zeit etwa den Wert 1299765206 zurück.

    Meide Idee und ja ich weiß das dann der Wert für den einen oder anderen keinen Sinn macht, ist folgender:

    Ich möchte die ersten 3 Zeichen vom zurückgegebenen Time abschneiden und am Ende 3 Ziffern hinzufügen.

    Ich habe mir schon überlegt das ich den Wert von Time zunächst in ein Pointer umwandle und dann die ersten 3 Zeichen abschneide. Und anschließend mit strncat die anderen 3 Ziffern anhänge.

    Leider hab ich keine Ahnung wie ich den Pointer am Anfang um 3 Stellen verschiebe, so das ich nur noch 9765206 zurück bekomme.

    Kann mit jemand ein kleines Beispiel angeben oder ein Link zu einem Beispiel?

    Oder hat jemand noch eine andere Idee für mein Weg zum Ziel?

    Ich danke schon einmal für Ieden Tipp



  • ich wuste es war zu Einfach:

    *p++; und das erste Zeichen ist Weg

    Aber Danke



  • - alles klar 🙂



  • Wenn du einen 64-Bit-Integer nimmst, dann brauchst du nicht den Umweg über einen String zu gehen (32 Bit dürfte wohl zu klein sein)

    uint64_t tim = time(NULL);
    tim%=10000000;
    tim*=1000;
    tim+=/*deine dreistellige Zahl*/
    


  • Dankeschön, ist auch eine möglichkeit die kürzer ist 🙂


Anmelden zum Antworten