Funktion strncpy in C

Hallo zusammen,

ich habe folgenden Auszug aus einem Prg (im Zusammenhang mit Loadrunner):


if(len>8) strncpy(output, lr_eval_string("{paramSAPBestellnummer}"), 8);

So werden die ersten acht Zeichen ausgelesen und kopiert.
Mein Problem ist nun aber, das die letzten acht Zeichen ausgelesen werden sollen.

Wie funktioniert das dann??
Wäre für schnelle Hilfe dankbar

Grüße Nadine

Hi,
ich kenn mich zwar mit loadrunner nicht aus, aber vielleicht kannst du dieses Problem mit Zeigerarithmetik lösen:
char *tmpOutput = new char[len];
if(len>8) {strncpy(tmpOutput, lr_eval_string("{paramSAPBestellnummer}"), 8);}
strncpy(output, (tmpOutput+(len-8), 8);
delete tmpOutput;

So oder so ähnlich sollte es funktionieren. Ich hoffen, das hilft dir.
Wenn du auch C++ benutzen kannst, kannst du natürlich auch std::string.substring(…) verwenden.
mfg, Hans

Hallo Hans,

Dein Ansatz ist wohl der Beste hier, nur tut es dann IMHO die strcpy():

char \*tmpOutput = new char[len];
if(len \> 8) 
 {strcpy(tmpOutput,
 lr\_eval\_string("{paramSAPBestellnummer}")
 );
 }
strcpy(output, tmpOutput+(len-8));
delete tmpOutput;

lg
Martin B