Vraag & Antwoord

Programmeren

[C]: Woord controleren

5 antwoorden
  • 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
  • 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.
  • [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]
  • 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
  • [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:

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.