Avatar billede desperato Nybegynder
31. marts 2009 - 16:06 Der er 7 kommentarer og
1 løsning

hjælp ... kopiering af en substreng i C

hej,

Et rigtigt newbie C spørgsmål: jeg har en streng som jeg ønsker at kopiere en substring fra. Jeg kender start og slut position for den substring jeg ønsker at kopiere, men kender ikke indholdet (ud over det er ascii karakterer).

jeg er også vild i tvivl om jeg skal definere disse strenge som char, Char * eller char[nnn]. Jeg skal interface til et scriptsprog (HP loadrunner) og den funktion der leverer mig source strenge er defineret som char *.

Any help i greatly appreciated ....

vh
Erik
Avatar billede arne_v Ekspert
31. marts 2009 - 16:11 #1
strncpy(target, source + startpos, endpos - startpos + 1);
target[endpos - startpos + 1] = '\0';
Avatar billede desperato Nybegynder
31. marts 2009 - 17:25 #2
Sådan her? ...

- - - - - -
char * buffer;
char * token;

strcpy( buffer,    lr_eval_string("{sResponseWithToken}") ); //script interface

strncpy(token, 583, 16);
token[17] = '\0';

lr_save_string( token,    "sToken" ); /script interface
- - - - - -

... det kompilerer fint men giver desværre det en run-time fejl:

Error: C interpreter run time error: Action.c (132):  Error -- memory violation : Exception ACCESS_VIOLATION received.

vh
Erik
Avatar billede desperato Nybegynder
31. marts 2009 - 17:26 #3
... der hvor jeg først kopierer source strengen fra script funktionen til buffer:

strcpy( buffer,    lr_eval_string("{sResponseWithToken}") ); //script interface
Avatar billede arne_v Ekspert
31. marts 2009 - 17:41 #4
snarere:

char buffer[10000];
char token[17];
strcpy( buffer,    lr_eval_string("{sResponseWithToken}") );
strncpy(token, 583, 16);
token[16] = '\0';
lr_save_string( token,    "sToken" );
Avatar billede desperato Nybegynder
31. marts 2009 - 18:46 #5
BINGO! Det virker nu. tak.
Avatar billede arne_v Ekspert
31. marts 2009 - 18:59 #6
Saa smider jeg et svar.

Du kunne muligvis helt undvaere buffer variablen.
Avatar billede desperato Nybegynder
31. marts 2009 - 19:02 #7
hvordan er det nu lige jeg giver dig point?
Avatar billede arne_v Ekspert
31. marts 2009 - 19:14 #8
har jeg faaet nu
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester