De meeste tekstverwerkers geven een aantal eigenschappen van de tekst uit een document weer, zoals het aantal woorden of het aantal letters in dat document. Schrijf een programma dat zelf een aantal van deze documenteigenschappen kan bepalen.
De eerste regel van de invoer bevat een getal $$t \in \mathbb{N}$$. Daarna volgen $$t$$ regels tekst. Deze tekst bestaat uit:
kleine letters (a-z) en hoofdletters (A-Z)
gedachtestreepje (-): hoewel het tussen twee spaties kan staan, wordt het niet als woord geteld
apostrofe ('): wordt in de (engelstalige) tekst uitsluitend gebruikt om de samentrekking van twee woorden aan te geven; het fragment "It's" bevat dus twee woorden
overige karakters: leestekens zoals (, ), !, ? kleven steeds aan een woord
witruimte (spaties en tabs): met uitzondering van de regels voor het gedachtestreepje en de apostrofe, mag je dus steeds veronderstellen dat tussen twee woorden minstens één karakter witruimte staat
Schrijf de volgende informatie op afzonderlijke regels naar de uitvoer:
paragrafen: p, waarbij $$p$$ het aantal paragrafen in de tekst voorstelt; tussen twee paragrafen staat juist één lege regel
regels: r, waarbij $$r$$ het aantal regels in de tekst voorstelt
woorden: w, waarbij $$w$$ het aantal woorden in de tekst voorstelt
karakters: k, waarbij $$k$$ het aantal karakters in de tekst voorstelt (exclusief de karakters die gebruikt worden om het einde van een regel voor te stellen)
letters: l, waarbij $$l$$ het aantal karakters voorstelt die letters uit het alfabet zijn; maak hierbij geen onderscheid tussen hoofdletters en kleine letters
witruimte: i, waarbij $$i$$ het aantal spaties en tabs voorstelt
overige: o, waarbij $$o$$ het aantal karakters voorstelt dat geen letter, spatie of tab is; met andere woorden: $$k = l + i + o$$
Invoer:
3
A - simple? - test
To show it's (more or less) working.
Uitvoer:
paragrafen: 2
regels: 3
woorden: 11
karakters: 54
letters: 37
witruimte: 10
overige: 7
Invoer:
2
Deze zin heeft tussen enkele woorden 2 spaties staan
en bevat ook "aanhalingstekens".
Uitvoer:
paragrafen: 1
regels: 2
woorden: 13
karakters: 87
letters: 69
witruimte: 14
overige: 4
Invoer:
49
Some things in life are bad
They can really make you mad
Other things just make you swear and curse.
When you're chewing on life's gristle
Don't grumble, give a whistle
And this'll help things turn out for the best...
And...
Always look on the bright side of life...
Always look on the light side of life...
If life seems jolly rotten
There's something you've forgotten
And that's to laugh and smile and dance and sing.
When you're feeling in the dumps
Don't be silly chumps
Just purse your lips and whistle - that's the thing.
And...
Always look on the bright side of life...
Always look on the light side of life...
For life is quite absurd
And death's the final word
You must always face the curtain with a bow.
Forget about your sin - give the audience a grin
Enjoy it - it's your last chance anyhow.
So always look on the bright side of death
Just before you draw your terminal breath
Life's a piece of shit
When you look at it
Life's a laugh and death's a joke, it's true.
You'll see it's all a show
Keep 'em laughing as you go
Just remember that the last laugh is on you.
And always look on the bright side of life...
Always look on the right side of life...
(Come on guys, cheer up!)
Always look on the bright side of life...
Always look on the bright side of life...
(Worse things happen at sea, you know.)
Always look on the bright side of life...
(I mean - what have you got to lose?)
(You know, you come from nothing - you're going back to nothing.
What have you lost? Nothing!)
Always look on the right side of life...
Uitvoer:
paragrafen: 8
regels: 49
woorden: 307
karakters: 1571
letters: 1149
witruimte: 332
overige: 90