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

Add ed example
m (→‎{{header|Wren}}: Minor tidy)
(Add ed example)
 
(One intermediate revision by one other user not shown)
Line 662:
count "Now is the time for all good men to come to the aid of their country."
</syntaxhighlight>
 
=={{header|ed}}==
 
Uses non-portable [[GNU Ed]] <tt>i</tt> suffix for case-insensitive matching.
 
<syntaxhighlight lang="sed">
H
,p
,j
s/[^[:alpha:]]//g
# Turn vowels into exclamations and consonants into commas
s/[aeiou]/!/gi
s/[b-df-hj-np-tv-z]/,/gi
# Sort the values to put vovels first
# (repeat as many times as necessary)
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
s/(,+)(!+)/\2\1/g
# Split vowels and consontants lines
s/!,/!\
,/
,p
Q
</syntaxhighlight>
 
{{out}}
 
<pre>$ cat vowels-consonants.ed | ed -lEGs vowels-consonants.input
Now is the time for all good men to come to the aid of their country
!!!!!!!!!!!!!!!!!!!!!!
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,</pre>
 
And then count the exclamation marks and commas manually?
 
=={{header|F_Sharp|F#}}==
Line 2,204 ⟶ 2,254:
Vowels: 22, 5 unique.
Other: 16, 2 unique.
</pre>
 
=={{header|Rust}}==
<syntaxhighlight lang="rust">use std::io ;
 
//string supposed to contain ascii letters only!
fn main() {
println!("Enter a string!");
let mut inline : String = String::new( ) ;
io::stdin( ).read_line( &mut inline ).unwrap( ) ;
let entered_line : &str = &*inline ;
let vowels = vec!['a' , 'e' , 'i' , 'o' , 'u' , 'A' , 'E' , 'I' ,
'O' , 'U'] ;
let numvowels = entered_line.trim( ).chars( ).filter( | c |
vowels.contains( c ) ).count( ) ;
let consonants = entered_line.trim( ).chars( ).filter( | c |
! vowels.contains( c ) && c.is_ascii_alphabetic( )).count( ) ;
println!("String {:?} contains {} vowels and {} consonants!" ,
entered_line.trim( ) , numvowels , consonants ) ;
}</syntaxhighlight>
{{out}}
<pre>
Enter a string!
Rust shares properties of procedural and functional languages!
String "Rust shares properties of procedural and functional languages!" contains 21 vowels and 33 consonants!
</pre>
 
110

edits