strncpy mit von bis



  • Hallo
    In Pascal haben wir einen Befehlt
    function Copy(
    S: AStringType;
    Index: SizeInt;
    Count: SizeInt
    ):string;

    in C habt ihr

    char * strncpy ( char * destination, const char * source, size_t num );

    gibt es da was wie
    char * strncpy ( char * destination, const char * source, size_t von, size_t bis );

    also eine Funktion um Teile aus einem CString in einen anderen zu kopieren.



  • Oh ich sehe
    bei euch geht es so
    strncpy(Text4, Text2 + pos, 2);
    C ist eben eine Pointer Sprache.



  • ats3788 schrieb:

    Oh ich sehe
    bei euch geht es so
    strncpy(Text4, Text2 + pos, 2);
    C ist eben eine Pointer Sprache.

    Es geht sogar noch viel toller:
    strncpy (Text4 + destPos, Text2 + srcPos, 2);



  • ats3788 schrieb:

    Oh ich sehe
    bei euch geht es so
    strncpy(Text4, Text2 + pos, 2);
    C ist eben eine Pointer Sprache.

    Da musst du aber noch den Stringterminator '\0' an das Ende schreiben.
    Das macht strncpy nicht, wenn count erreicht wurde.

    Wenn an der Zielposition (*Text4) eine '\0' steht, kannst du strncat nehmen. Das schreibt die '\0' in jedem Fall.



  • strncpy benutzen nur Deppen.

    sprintf(Text4,"%.*s",2,Text2 + pos);
    


  • Wäre substr
    Nicht das was du suchst?



  • LowFly schrieb:

    Wäre substr
    Nicht das was du suchst?

    Wenn wir hier in C++ wären, dann vielleicht.



  • Wutz schrieb:

    strncpy benutzen nur Deppen.

    Genau. Nur Deppen benutzen Funktionen, die so heißen wie das, was sie tun. Nur Deppen schreiben Code, der auf den ersten Blick lesbar ist. Wahre Götter benutzen lieber eierlegende Wollmilchsäue und verstecken ihr Wissen in kryptischen Formatstrings. Im Übrigen ist es ja sooo performant, für jedes popelige Text-Copy ein Schwergewicht wie sprintf in Marsch zu setzen.



  • Nur Deppen nehmen Tipps von Profis nicht an, weil sie ihrem beschränkten lernunwilligen Horizont verhaftet und der Meinung sind, die Tipps von Profis überhaupt bewerten zu können, was sie - naturgemäß - natürlich nicht können.



  • würdest du dann evtl. einmal erläutern, welchen Vorteil die Verwendung von sprintf hat?

    Geraten wäre jetzt, dass ich mir evtl. unnötiges Abschließen des Strings sparen könnte.


  • Mod

    Wade1234 schrieb:

    würdest du dann evtl. einmal erläutern, welchen Vorteil die Verwendung von sprintf hat?

    Geraten wäre jetzt, dass ich mir evtl. unnötiges Abschließen des Strings sparen könnte.

    Oder genauer: Bei sprintf ist garantiert, dass man hinterher einen gültigen String hat. Bei strncpy muss man prüfen und eventuell korrigieren, wodurch die ganze Funktion etwas sinnlos ist.

    Ich würde generell Wutz ignorieren, so lange er sich zu fein ist, auf Nachfrage eine Erklärung zu geben, die kürzer wäre als seine Beleidigungen.


Log in to reply