19. december 2003 - 10:41
Der er
9 kommentarer og 1 løsning
Hvordan finder jeg filnavn udfra strengen: c:\bla\bla.exe
Hej, jeg har en streng, som indeholder: c:\bla\bla.exe Jeg vil herefter ende med at have en streng som indeholder bla.exe Jeg har forsøgt mig med følgende: char streng1[] = "c:\\bla\\bla.exe"; char * streng2; streng2 = strrchr(streng1,'\\'); printf("%s\n",streng2+1); Dette virker ikke helt... Nogle som lige kan modificere... Hvis jeg laver dette: printf("%s\n",streng2+1); Får jeg printet \bla.exe og jeg vil kun have bla.exe
Annonceindlæg fra FPT Software
19. december 2003 - 10:50
#1
Øh ? #include <stdio.h> #include <string.h> int main() { char streng1[] = "c:\\bla\\bla.exe"; char * streng2; streng2 = strrchr(streng1,'\\'); printf("%s\n",streng2+1); return 0; } giver kun: bla.exe kun mig...
19. december 2003 - 10:57
#2
Hmm... Måske det skyldes at jeg bruger det i en funktion, hvor char steng1 faktisk er af typen: LPSTR lpstr??
19. december 2003 - 11:00
#3
LPSTR burde være OK. Men du husker at kalde med streng2+1 og ikke med streng2 ??
19. december 2003 - 11:01
#4
Det er en videre udvikling af mit spørgsmål fra i går... bool __stdcall Proc( DWORD dw, WORD alwaysZero, LPSTR lpstr, LPARAM lParam ) { char * pch; pch = strrchr(lpstr,'\\'); printf( "%s\n", pch+1); return true; }
19. december 2003 - 11:07
#5
Og den skriver ud med "\" forrest ?
19. december 2003 - 11:12
#6
Nej, den fejler... Hvis jeg ændrer til pch (uden +1) skriver den med \bla.exe
19. december 2003 - 11:20
#7
Prøv lige at skrive lpstr ud og se om der er nogen som ikke indeholder "\" ! (NULL + 1 er ikke en valid pointer)
19. december 2003 - 11:21
#8
Ahhh... Jeg har faktisk lige kodet så den fjernede 3 strenge som indeholdt NULL... :o)
19. december 2003 - 11:22
#9
Damn, min kode var næsten rigtig, men langt fra korrekt... :o) Lægger du et svar ARNE_V! (min redning igen igen...)
19. december 2003 - 11:24
#10
svar
Kurser inden for grundlæggende programmering