Jump to content

Count how many vowels and consonants occur in a string: Difference between revisions

m
→‎{{header|Phix}}: added other distinct
m (→‎{{header|Phix}}: added other distinct)
Line 222:
<!--<lang Phix>(phixonline)-->
<span style="color: #008080;">with</span> <span style="color: #008080;">javascript_semantics</span>
<span style="color: #008080;">constantprocedure</span> <span style="color: #000000;">scount_vowels_and_consonants</span> <span style="color: #0000FF;">=(</span> <span style="color: #008000004080;">"Nowstring</span> is<span thestyle="color: time for all good men to come to the aid of their country.#000000;">s</span><span style="color: #0000FF;">,)</span>
<span style="color: #008080;">constant</span> <span style="color: #000000;">fmtvco</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #008000;">"Thevowels"</span><span stringstyle="color: \#0000FF;"%s\>,</span><span style="\ncolor: #008000;">"consonants"</span><span containsstyle="color: %d#0000FF;">,</span><span vowelsstyle="color: (%d#008000;">"other"</span><span distinct)style="color: #0000FF;">},</span> <span style="color: #000000;">fvco</span> <span style="color: #0000FF;">=</span> <span style="color: #0000FF;">{</span><span style="color: #008000;">"%d consonants%s (%d distinct),"</span><span andstyle="color: %d other\n#0000FF;">}</span>
<span style="color: #004080;">sequence</span> <span style="color: #000000;">r</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">sort</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">filter</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">apply</span><span style="color: #0000FF;">(</span><span style="color: #004600;">true</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">find</span><span style="color: #0000FF;">,{</span><span style="color: #7060A8;">lower</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">),{</span><span style="color: #008000;">"aeioubcdfghjklmnpqrstvwxyz"</span><span style="color: #0000FF;">}}),</span><span style="color: #008000;">"!="</span><span style="color: #0000FF;">,</span><span style="color: #000000;">0</span><span style="color: #0000FF;">))</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">ls</span> <span style="color: #0000FF004080;">=</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">s</span><span style="color: #0000FF;">),integer</span> <span style="color: #000000;">v</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">abs</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">binary_search</span><span style="color: #0000FF;">(</span><span style="color: #000000;">6</span><span style="color: #0000FF;">,</span><span style="color: #000000;">r</span><span style="color: #0000FF;">))-</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">uv</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">unique</span><span style="color: #0000FF;">(</span><span style="color: #000000;">r</span><span style="color: #0000FF;">[</span><span style="color: #000000;">1</span><span style="color: #0000FF;">..</span><span style="color: #000000;">v</span><span style="color: #0000FF;">])),</span>
<span style="color: #000000;">lrc</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #000000;">r</span><span style="color: #0000FF;">),</span> <span style="color: #000000;">c</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">lr</span><span style="color: #0000FF;">-</span><span style="color: #000000;">v</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">other</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">ls</span><span style="color: #0000FF;">-</span><span style="color: #000000;">lr</span><span style="color: #0000FF;">,</span> <span style="color: #000000;">uc</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">length</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">unique</span><span style="color: #0000FF;">(</span><span style="color: #000000;">r</span><span style="color: #0000FF;">[</span><span style="color: #000000;">v</span><span style="color: #0000FF;">+</span><span style="color: #000000;">1</span><span style="color: #0000FF;">..$])),</span>
<span style="color: #000000;">o</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">printflength</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1s</span><span style="color: #0000FF;">,)-</span><span style="color: #0000007060A8;">fmtlength</span><span style="color: #0000FF;">,{(</span><span style="color: #000000;">sr</span><span style="color: #0000FF;">),</span> <span style="color: #000000;">vuo</span> <span style="color: #0000FF;">,=</span> <span style="color: #0000007060A8;">uvlength</span><span style="color: #0000FF;">,(</span><span style="color: #7060A8;">unique</span><span style="color: #0000FF;">(</span><span style="color: #7060A8;">lower</span><span style="color: #0000FF;">(</span><span style="color: #000000;">cs</span><span style="color: #0000FF;">,)))-(</span><span style="color: #000000;">ucuv</span><span style="color: #0000FF;">,+</span><span style="color: #000000;">otheruc</span><span style="color: #0000FF;">})</span>
<span style="color: #004080;">string</span> <span style="color: #0000FF;">{</span><span style="color: #000000;">sv</span><span style="color: #0000FF;">,</span><span style="color: #000000;">sc</span><span style="color: #0000FF;">,</span><span style="color: #000000;">so</span><span style="color: #0000FF;">}</span> <span style="color: #0000FF;">=</span> <span style="color: #7060A8;">apply</span><span style="color: #0000FF;">(</span><span style="color: #004600;">true</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">sprintf</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">fvco</span><span style="color: #0000FF;">,</span><span style="color: #7060A8;">columnize</span><span style="color: #0000FF;">({{</span><span style="color: #000000;">v</span><span style="color: #0000FF;">,</span><span style="color: #000000;">c</span><span style="color: #0000FF;">,</span><span style="color: #000000;">o</span><span style="color: #0000FF;">},</span><span style="color: #000000;">vco</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">uv</span><span style="color: #0000FF;">,</span><span style="color: #000000;">uc</span><span style="color: #0000FF;">,</span><span style="color: #000000;">uo</span><span style="color: #0000FF;">}})})</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"The string \"%s\"\n contains %s, %s, and %s.\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">s</span><span style="color: #0000FF;">,</span><span style="color: #000000;">sv</span><span style="color: #0000FF;">,</span><span style="color: #000000;">sc</span><span style="color: #0000FF;">,</span><span style="color: #000000;">so</span><span style="color: #0000FF;">})</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">procedure</span>
<span style="color: #000000;">count_vowels_and_consonants</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"Now is the time for all good men to come to the aid of their country."</span><span style="color: #0000FF;">)</span>
<!--</lang>-->
{{out}}
<pre>
The string "Now is the time for all good men to come to the aid of their country."
contains 22 vowels (5 distinct), 31 consonants (13 distinct), and 16 other (2 distinct).
</pre>
 
7,820

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.