Count the number of vowels in each word of a string This is a rather easy challenge.

Challenge

Input will contain a string (not null or empty) of maximum length 100. Output the number of vowels in each word of the string, separated by spaces.

Rules


The string will not be more than 100 characters in length.
The string will only contain alphabets A-Z , a-z and can also contain spaces.
Input must be consumed from the stdin or command line arguments.
Output must be outputted in the stdout.
You can write a full program, or a function that takes input from the stdin and outputs the result.
The vowels that your program/function needs to count are aeiou and AEIOU.


Test Cases

This is the first test case     --&gt; 1 1 1 1 1 2
one plus two equals three       --&gt; 2 1 1 3 2
aeiou AEIOU                     --&gt; 5 5
psst                            --&gt; 0
the quick brown fox jumped over the lazy dog --&gt; 1 2 1 1 2 2 1 1 1


Scoring

This is code-golf, so the shortest submission (in bytes) wins.
C, 113 108 103 96 bytes

Thanks @andrea-biondo for a particularly nice 5 byte saving.

main(a,v,c)char**v;{do{for(a=0;c=*v[1]++%32;2016%(c+27)||a++);printf("%d ",a);}while(v[1][-1]);}


This still feels sort of bloated so hopefully I can get it down quite some bytes later tonight. 

The interesting part is perhaps that

!(124701951%((c-65&amp;31)+33))


will be 1 if c is an (upper or lower case) ASCII vowel, and 0 for other characters a-zA-Z. The subexpression c-65&amp;31 maps 'a' and 'A' to 0, 'b' and 'B' to 2, etc. When we add 33 the vowels correspond to the numbers 33, 37, 41, 47, 53 respectively, all of which are (conveniently) prime. In our range only such numbers will divide 124701951 = 33*37*41*47*53, ie only for vowels will the remainder of 124701951%(...) be zero.

EDIT: In this way one can consider the expression !(n%((c-65&amp;31)+s)) where (n,s) = (124701951, 33) as determining whether the character c is a vowel. In the comments @andrea-biondo pointed out that the pair (n,s) = (2016,28) can also be used in this expression to determine vowelhood. I'll leave the current explanation in terms of primes above, but the reason this shorter pairing works is again because in the range 28--53 the only numbers with prime factors entirely in the set of prime factors of 2016 are 28, 32, 36, 42, 48, which correspond precisely to the vowels. 

EDIT2: Another 5 bytes saved since (c-65&amp;31)+28 can be shortened to c%32+27. 

EDIT3: Converted to a do-while loop to finally get it below 100 bytes.

Test cases:


$ ./vowelc "This is the first test case"
1 1 1 1 1 2 
$ ./vowelc "one plus two equals three"
2 1 1 3 2 
$ ./vowelc "aeiou AEIOU"
5 5 
$ ./vowelc "psst"                     
0