23. maj 2002 - 19:30
Der er
26 kommentarer og 1 løsning
sammenligne char *?
Hej eksperter! Når man sammeliger 2 char *, feks: filena[k]!=toupper(name[k]) hvilken betingelse skal jeg bruge for at fange det allersidste tegn i name, som er kortere end filena. Jeg har brugt: if(filena[k]!=0 || name[j]!=-119 ||name[j]!=-1085 || name[j] != NULL) Hvad hedder den sidste? (Line feed eller carry return) Tak! BAMSE!
Annonceindlæg fra Conscia
Hvad menr du med : "hvilken betingelse skal jeg bruge for at fange det allersidste tegn i name, som er kortere end filena. "
Hvad mener du? da ikke ....!=0? Det virker ikke... Den overser stadig et tomt felt...
Undskyld! Jeg mener: Jeg kigger 2 arrays igennem: filena og name. Name slutter før filena. Hvordan finder jeg ud af det? if(name[k]==XXXXXXX)?
Jeg er ikke helt med på hvilken charkter du søger. Hvilket tegn vil du gerne finde i nedenstående eks.: filena="abcdef" name ="aaabcd"
Ahhhh..ok if ((strlen(name) < strlen(filena)) { // name < filena }
Det allersidste! Altså hvis filena="abcdefg" name="abcde" så skal jeg finde tegnet efter e i name! Altså det som fortæller at name slut!
if ((strlen(name) < strlen(filena)) { char ch; ch = filena[strlen(name)]; // }
det er '\o' som er i enden af en string!
>bamse2000. Hvis bare vil lægge de to strenge sammen, så kan du også bruge strcat(filena,name);
laffe > Jeg tror du har misforstået mig, det er: brille333 > Det er noget lignede det, men det virker ikke i programmet "dev-c++" i windows, men på linux....
Okay, lad mig spørge på en anden måde: Jeg vil gerne sammenligne 2 ikke-faste størrelse af strenge... Hvordan finder jeg ud af om name==filname?
if (strcmp(name,filena)==0) // name = filena
Sidste spørgsmål! Hvad returnerer strcmp?
str1 < str2 så returneres < 0 str1 = str2 så returneres = 0 str1 > str2 så returneres > 0
Tak! Ærgeligt at mit program stadigt ikke virker...
Forresten! Jeg tror fejlen er at name<filename. Ikke RIGTIGT mindre, men feks: name ="TEST"; filename="TEST "; Disse skal sammmelignes ens! Hvordan?
Du kan 'strippe' filename for " " spaces, før du sammenligner filename og name.
Her er en strip funktion. char* strip(char tekst[]) { int i = 0; while ( (tekst[i] != ' ') && (tekst[i])) i++; if (tekst[i]== ' ') tekst[i] = 0; returntekst; };
Ok, men hvordan? (undskyld, men jeg er ret dårlig til c)
strcmp(strip(filename),strip(name))
TAK TAK TAK! DET VIRKER NU! MANGE TAK! (Du skulle ikke kende en god hjemmeside, med alt det der du har fortalt mig, f.eks. om strlen, strcmp osv) Bamse
Okay, den ser heftig ud. Tak ellers! Det var dejligt med noget hjælp! (Du kunne vel ikke lave min opgave ;-) )
Nej tak. Jeg har rigelig at se til ;-)
Kurser inden for grundlæggende programmering