Stripping off extra spaces from a string You are given a string. Output the string with one space per words.

Challenge

Input will be a string (not null or empty), surrounded with quotes(") sent via the stdin. Remove leading and trailing spaces from it. Also, if there are more than one space between two words (or symbols or whatever), trim it to just one space. Output the modified string with the quotes.

Rules


The string will not be longer than 100 characters and will only contain ASCII characters in range (space) to ~(tilde) (character codes 0x20 to 0x7E, inclusive) except ",i.e, the string will not contain quotes(") and other characters outside the range specified above. See ASCII table for reference.
You must take input from the stdin( or closest alternative ).
The output must contain quotes(").
You can write a full program, or a function which takes input (from stdin), and outputs the final string


Test Cases

"this  is  a    string   "         --&gt; "this is a string"

"  blah blah    blah "             --&gt; "blah blah blah"

"abcdefg"                          --&gt; "abcdefg"

"           "                      --&gt; ""

"12 34  ~5 6   (7, 8) - 9 -  "     --&gt; "12 34 ~5 6 (7, 8) - 9 -" 


Scoring

This is code golf, so the shortest submission (in bytes) wins.
CJam, 7 bytes
q~S%S*p

Code Explanation
CJam has reserved all capital letters as inbuilt variables. So S has a value of a space here.
q~          e# Read the input (using q) and evaluate (~) to get the string
  S%        e# Split on running lengths (%) of space
    S*      e# Join (*) the splitted parts by single space
      p     e# Print the stringified form (p) of the string.

This removes the trailing and leading spaces as well
Try it online here