Avatar billede funtex Nybegynder
10. december 2002 - 17:55 Der er 6 kommentarer og
1 løsning

backslash \

hej, er der nogle kloge hoveder der ude??

Sidder og rodder med lidt filhåndtering og løbet ind i et lille problem.

jeg modtager en char *, eks. char *sti = "c:\gem\filen";

mit problem er at jeg så skal have under søgt hvor mange '\' der optræder i strengen og så ha' skiftet '\' ud med '\\', således at strengen bliver til "c:\\gem\\filen" efter endt konvertering.

jeg har lavet søge funktionen og selve konverterings funktionen og det virker med stort set alle andre ascii værdier, bare ikke \

Har prøvet at teste på '\', '\\', 92 som er ascii værdien for '\'. Dog uden virkning
Avatar billede arne_v Ekspert
10. december 2002 - 18:30 #1
For det første tvivler jeg på, at det er nødvendigt.

Du skal skrive \\ i.s.f. \ i C source code, men hvis
du læser et navn fra en fil eller fra net, så skal der
kun være \.

Eneste grund jeg kan se til at lave den konvertering er,
hvis du skal generere C kode.
Avatar billede arne_v Ekspert
10. december 2002 - 18:34 #2
Men hvis du skal have det så:

int count(char *s)
{
  int n,i;
  n = 0;
  for(i=0;i<strlen(s);i++) if(s[i]=='\\') n++;
  return n;
}

void replace(char *s1,char *s2)
{
  int i,ix;
  ix=0;
  for(i=0;i<strlen(s1);i++)
  {
      if(s1[i]=='\\')
      {
          s2[ix] = s1[i];
          ix++;
          s2[ix] = s1[i];
          ix++;
      } else {
          s2[ix] = s1[i];
          ix++;
      }
  }
  s2[ix]='\x00';
  return;
}
Avatar billede arne_v Ekspert
10. december 2002 - 18:35 #3
Indtastet her, så lad lige compileren checke
for slag-fejl etc..
Avatar billede funtex Nybegynder
10. december 2002 - 18:37 #4
det jeg ønsker er en funktion der kan lave noget en bruger taster ind (dvs f.eks. A:\test), om til noget c++ kan forstå (dvs. A:\\test), men det kan jeg ikke få til at virke, og den kode du har sendt hjælpe ikke meget på det problem
Avatar billede arne_v Ekspert
10. december 2002 - 18:39 #5
Altså hvis du lader brugeren indtaste en streng og du
bruger den streng til at åbne filen med, så skal du ikke
og jeg gentager ikke erstatte \ med \\ !

Og hvis du skulle, så kunne min replace funktion lave
konverteringen.

Så jeg forstår ikke problemet ....
Avatar billede funtex Nybegynder
10. december 2002 - 20:36 #6
hej arne drengen, ja okay testede på en predefineret streng og ikke en der var indtastet af en bruger, det er selvfølgelig rigtig at når brugeren indtaster \ så bliver det til \\.
men post et svar så får du point's! :-) takker
Avatar billede arne_v Ekspert
10. december 2002 - 20:37 #7
svar
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