Ga naar inhoud

[C]: Woord controleren


anoniem

Aanbevolen berichten

Beste mensen, Ik ben nu een beetje C aan het leren en ik wilde ene programma maken dat als volgs iets doet: Het opent een tekstbestand en moet dan elk woord controleren dan een klinker heeft en aan het einde laten zien hoeveel klinkers er in totaal zijn. Dit klink heel makkelijk maar als ik daar meebezig was had ik geen idee hoe ik dat zou moeten oplossen. Zou iemand dit voor een voorbeeld code maken? grtz, wwizzkidd
Link naar reactie
Je zou het op de volgende manier aan kunnen pakken. Een form met een Memo (TMEMO) en een knop (Tel klinkers) [code:1:84a9e8b808] { sTekst = mmTekstvak->Lines->Tekst; iKlinkers= 0; for( int i=1; i <=sTekst.Lenght(); i++) switch(UpCase(sTekst[i]) { case 'A' : case 'E' : case 'I' : case 'O' : case 'U' : iKlinkers++; } ShowMessage (String("Deze tekst bevat " + klinkers + "klinkers"); } [/code:1:84a9e8b808] Wel ff goede declaraties erbij maken e.d.
Link naar reactie
[quote:3488ab736a="wwizzkidd"] Ik ben nu een beetje C aan het leren en ik wilde ene programma maken dat als volgs iets doet: Het opent een tekstbestand en moet dan elk woord controleren dan een klinker heeft en aan het einde laten zien hoeveel klinkers er in totaal zijn. [/quote:3488ab736a] Dus alleen woorden die minstens één klinker bevatten, en van al deze woorden alle klinkers bij elkaar optellen. [quote:3488ab736a="wwizzkidd"] Dit klink heel makkelijk maar als ik daar meebezig was had ik geen idee hoe ik dat zou moeten oplossen. Zou iemand dit voor een voorbeeld code maken? [/quote:3488ab736a] [code:1:3488ab736a] f = "open bestand" while not eof(f) do begin s := "lees regel" if (s <> "") then begin KlinkerWoord := 0; for i:= 1 to Length(s) do begin Select LowerCase(s[i]) of case ' ': if KlinkerWoord > 0 then Klinkers := Klinkers + KlinkerWoord; KlinkerWoord := 0; case: 'a','e','i','o','u': KlinkerWoord := KlinkerWoord + 1; end; if (KlinkerWoord > 0) then Klinkers := Klinkers + KlinkerWoord; end; end "sluit bestand" "Toon bericht"(Klinkers + 'klinkers gevonden'); [/code:1:3488ab736a] Edit: bovenstaand voorbeeldcode kun je dus mooi gebruiken als je een restrictie op het aantal klinkers in een woord wilt zetten. :) En onderstaande voorbeeldcode doet ook wat jij wilt, maar is wat korter. [code:1:3488ab736a] f = "open bestand" while not eof(f) do begin s := "lees regel" if (s <> "") then begin for i:= 1 to Length(s) do begin if LowerCase(s[i]) in ['a','e','i','o','u'] then Klinkers := Klinkers + 1; end; end; end "sluit bestand" "Toon bericht"(Klinkers + ' klinkers gevonden'); [/code:1:3488ab736a]
Link naar reactie
Ok bedankt voor het code. Maar nu ga ik een stap verder. Nu even iets moeilijker: Ik ben namelijk bezig met een programma dat .c bestanden doorzoekt en zoekt naar functies. Maar nu wil ik het voldende: Het programma moet zoeken naar functies en tellen hoeveel argumenten het heeft. Bijv. met main: [b:22aa55c1b2]int main(int argc, char *argv[])[/b:22aa55c1b2] Het programma zoekt dus main() op en moet dan kijken hoeveel argument het heeft. Dus het programma moet dus zeggen: main() heeft 2 argumenten en op het einde zeggen dat er totaal N functies zijn. etc. Maar ik dacht dat ,je die functies die op wilt zoeken, in een struct kan doen. Kan iemand hiervan een voorbeeld geven van wat ik net allemaal zei? Veel & happy coding :) grtz, psycoder
Link naar reactie
[quote:514e93dac7="wwizzkidd"] Nu even iets moeilijker: Ik ben namelijk bezig met een programma dat .c bestanden doorzoekt en zoekt naar functies. Maar nu wil ik het voldende: Het programma moet zoeken naar functies en tellen hoeveel argumenten het heeft. Bijv. met main: [b:514e93dac7]int main(int argc, char *argv[])[/b:514e93dac7] Het programma zoekt dus main() op en moet dan kijken hoeveel argument het heeft. Dus het programma moet dus zeggen: main() heeft 2 argumenten en op het einde zeggen dat er totaal N functies zijn. etc. Maar ik dacht dat ,je die functies die op wilt zoeken, in een struct kan doen. Kan iemand hiervan een voorbeeld geven van wat ik net allemaal zei? Veel & happy coding :) [/quote:514e93dac7] [code:1:514e93dac7] // pre: * .c bestand is een geldige .c bestand. (duh) // * { en } die respectievelijk het begin en einde van een functie // aanduiden beginnen op een nieuwe regel 8) // * er worden geen macro's gebruikt f = "open bestand" DWORD i; *p pstructfuncs_params; i = GetFunctionsAndParams(NULL); AllocGeheugen(p,i); i = GetFunctionsAndParams(p); // hierzo DeAllocGeheugen(p); "sluit bestand" [/code:1:514e93dac7] Uiteraard heb ik hier niet de .c specs bij de hand anders had ik wel ff een eindige automaat hiervoor geschreven. :wink:
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...