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 machtstrncpy
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?
-
-
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.
-
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.