char-Array Länge ermitteln



  • CarstenJ schrieb:

    Das ist nicht richtig: 0 != \0. Warum probierst du strlen nicht einfach mal aus und stellst selbst fest, obs funktioniert?!

    Das stimmt höchstens für den Typ. Ansonsten ist 0 und '\0' das selbe. Diese Zeile gibt "Ja" aus:

    cout << ((0=='\0')?"Ja":"Nein");
    

    @Midnighter: Übergib die Länge oder markiere das Ende mit einem speziellen Token.



  • Hallo,

    also entweder hab ich die Problematik nicht richtig verstanden oder mein strlen() funktioniert anders als eures. Wenn ich das hier schreibe...

    char* test="00 00 03 6A";
    printf("%i", strlen(test));
    

    ...kommt bei mir 11 raus, und zwar auch dann, wenn ich den String an eine Funktion übergebe.



  • Was Midnighter geschrieben hat, soll vermutlich die Rohdaten in hexadezimaler Darstellung darstellen, keinen Text.



  • CarstenJ schrieb:

    Hallo,

    also entweder hab ich die Problematik nicht richtig verstanden oder mein strlen() funktioniert anders als eures. Wenn ich das hier schreibe...

    char* test="00 00 03 6A";
    printf("%i", strlen(test));
    

    ...kommt bei mir 11 raus, und zwar auch dann, wenn ich den String an eine Funktion übergebe.

    Schau dir nochmal genau sein letztes Posting an.

    Midnighter schrieb:

    Wenn ich zum Beispiel folgende vier Bytes lese:

    00 00 03 6A

    In deinem Beispiel hast du nicht die vier Bytes 00 00 03 6A sondern einfach diese ASCII Zeichen in einen String gepackt. Das ist ein Unterschied 🙂



  • Was Midnighter geschrieben hat, soll vermutlich die Rohdaten in hexadezimaler Darstellung darstellen, keinen Text

    und interpreter hat ja auch schon die richtige antwort dazu gegeben.

    @Midnighter: Übergib die Länge oder markiere das Ende mit einem speziellen Token



  • CarstenJ schrieb:

    ...also entweder hab ich die Problematik nicht richtig verstanden...

    Ok, ack. 🕶



  • Hallo!

    Folgender Vorschlag:

    #define ARRAY_SIZE(a) (sizeof(a) / (sizeof(a[0])))
    

    Gruß
    Michael



  • bloodshower schrieb:

    Hallo!

    Folgender Vorschlag:

    #define ARRAY_SIZE(a) (sizeof(a) / (sizeof(a[0])))
    

    Gruß
    Michael

    Schön. Funktioniert nur nicht.



  • Danke für die Antworten. Ich werd mir das Array-Ende markieren.

    MfG,
    mid 🙂



  • bloodshower schrieb:

    Hallo!

    Folgender Vorschlag:

    #define ARRAY_SIZE(a) (sizeof(a) / (sizeof(a[0])))
    

    Gruß
    Michael

    Das funktioniert höchstens da, wo du das Array auch definiert hast.


Anmelden zum Antworten