25. oktober 1999 - 16:12Der er
13 kommentarer og 1 løsning
finde forekomsten af en tekst i en fil
hej! jeg sidder og nørkler lidt med en lille opgave hvor jeg skal finde forekomsten af en tekststreng i en almindelig tekst fil. jeg har følgende ide void find(char file[], char soegstring[]) char forkomst[63]; fstream filtxt(file,ios::in); while(!filtxt.eof()) filtxt>>forkomst; if(strcmp(forkomst,soegstring)==0) cout <<"ord "<<soegstring<<" fundet"<<endl; }
problemmet er at char[64] jo er erklæret i memory og indeholder alle 64 tegn, men soegstring kun indeholder det antal tegn som teksten fylder. håber nogen har en ide
Ja det er i hvert fald noget i den retning. Hvis jeg bruger den termonologi jeg har beskrevet i spørgsmålet, kan jeg ikke samligne strengende pågrund af at char varablen forkomst jo indeholder en masse \n \0 da den er fordefineret til 64. Når jeg debugger koden kan jeg så se at den ikke f.eks kan samlignes med strengen "viggo\0" forde forkomst indeholder en masse andet også? forstår hvad jeg mener?
Det virkede, jeg havde sådan set også tænkt på at jeg kunne brugge pointere i functions parametrene, men opgaven ligger op til at jeg skal løse opg. med følgende function. int find(char file[], char soegstring[]) den skal bare retunere 1 hvis ordet findes. Men hvad. Tak for hjælpen Bjarke, hmmm er du interesseret i en lille c++ opgave jeg har fået i forbindelse med eksamensforeberedelse. Det er såen en hvor man skal gennemskue hvad der er forkert.
simon >> Denne opgave er jo helt analog til den du stillede omkring erstaning af een streng i en fil med en anden - som også blev besvaret her på eksperten. Nemme point til bjarke !
soepro >> Det har du ret i. Jeg har også undret mig lidt over, at der er kommet så mange ens spørgsmål (men jeg klager ikke over pointene ;-)
simon >> Hvordan kunne det være, at du ikke kunne finde ud af det her selv, efter din store 300 points opgave?
I øvrigt var det vist ikke helt rigtigt det jeg skrev: char* file = char file[] Det er vist: const char* file = char file[] Pointeren er en variabel, men den anden erklæring erklærer en konstant streng. Ikke soepro?
hmmmmmmm ja hvad skal jeg ligesom sige til det! jeg må jo bare prøve lidt bedre selv at løse opgaverne i fremtiden, men får mig er det også vigtigt at få forskellige vinkler på tingende. Men i har da fuldstændig ret i at jeg måske kunne finde nogle svar på de spørgsmål der allerede er besvaret her på Eksperten.
Jo, det er skam rigtigt, at det ofte kan være inspirerende at høre hvordan andre vil løse et problem, men lige i dette tilfælde synes jeg, at det måske var lidt underligt med så let et spørgsmål lige efter det langt vanskelligere til 300 points :-)
prøver lige igen.:-) Måske har det noget med min tålmodighed at gøre, jeg sad og arbejde med opgaven og så ville det bare ikke virke. Også tænkte jeg at nogle måske ville score nogle billige point. De simple opgaver er et led i forberedelsen til eksamen og derfor ville jeg jo på en måde også gerne repetere lidt. Jeg har nu gennmegået alle opgaverne med din og soepro´s hjælp, det har virkligt givet mig en del. Og jeg er virklig glad for de svar i har givet mig. Når man som mig er temmelig ny i c++ glemmer man "synes jeg" hurtigt de simple ting, mens de lidt mere tunge ting som constructor overloading klasse nedarvning faktisk hænger bedre fast, underligt nok, men måske min lile hjerne bare ikke kan kapere det :-)
God fornøjelse med eksamensforberedelserne og eksamen....
Det er i øvrigt heller ikke så tosset for mig at få repeteret tingene. Jeg har selv lige haft dit pensum i foråret (det lader til at vore pensa (?) må være ret identiske).
Synes godt om
Ny brugerNybegynder
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.