You're very close to solve your problem... I'd suggest to improve Split function this way:
char[] splitchar = new char[] {' '};
string[] strArr = str.Split(splitchar, StringSplitOptions.RemoveEmptyEntries);
Now, you have to loop through the array of words:
foreach (string word in strArr)
{
Console.WriteLine("{0}", word);
}
All you need to do is to write function which will return the number of distinct chars in a word, then to join each element into word.
string finalStr = String.Concat(firstChar, TheCountOfDistinctChars.ToString(), lastChar);
Try!