[Question]
  [
Full width text is text that has a space after every character, including the last one. For instance, the first sentence of this question becomes:
```
F u l l   w i d t h   t e x t   i s   t e x t   t h a t   h a s   a   s p a c e   a f t e r   e v e r y   c h a r a c t e r ,   i n c l u d i n g   t h e   l a s t   o n e . 
```
Write a program that takes a line in text from standard input and outputs it as full-width text to standard out. 
## Leaderboard
```
var QUESTION_ID=75979,OVERRIDE_USER=52353;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var i=jQuery("#language-template").html(),o=t[c];i=i.replace("{{LANGUAGE}}",o.lang).replace("{{NAME}}",o.user).replace("{{SIZE}}",o.size).replace("{{LINK}}",o.link),i=jQuery(i),jQuery("#languages").append(i)}}var ANSWER_FILTER="!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe",COMMENT_FILTER="!)Q2B_A2kjfAiU78X(md6BoYk",answers=[],answers_hash,answer_ids,answer_page=1,more_answers=!0,comment_page;getAnswers();var SCORE_REG=/<h\d>\s*([^\n,]*[^\s,]),.*?(\d+)(?=[^\n\d<>]*(?:<(?:s>[^\n<>]*<\/s>|[^\n<>]+>)[^\n\d<>]*)*<\/h\d>)/,OVERRIDE_REG=/^Override\s*header:\s*/i;
```
```
body{text-align:left!important}#answer-list,#language-list{padding:10px;width:290px;float:left}table thead{font-weight:700}table td{padding:5px}
```
```
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <link rel="stylesheet" type="text/css" href="//cdn.sstatic.net/codegolf/all.css?v=83c949450c8b"> <div id="answer-list"> <h2>Leaderboard</h2> <table class="answer-list"> <thead> <tr><td></td><td>Author</td><td>Language</td><td>Size</td></tr></thead> <tbody id="answers"> </tbody> </table> </div><div id="language-list"> <h2>Winners by Language</h2> <table class="language-list"> <thead> <tr><td>Language</td><td>User</td><td>Score</td></tr></thead> <tbody id="languages"> </tbody> </table> </div><table style="display: none"> <tbody id="answer-template"> <tr><td>{{PLACE}}</td><td>{{NAME}}</td><td>{{LANGUAGE}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table> <table style="display: none"> <tbody id="language-template"> <tr><td>{{LANGUAGE}}</td><td>{{NAME}}</td><td>{{SIZE}}</td><td><a href="{{LINK}}">Link</a></td></tr></tbody> </table>
```
  
[Answer]
# [Jelly](http://github.com/DennisMitchell/jelly), ~~5~~ ~~3~~ 2 bytes
Thanks to *Dennis* for saving 2 bytes. Also thanks to *FryAmTheEggman* for saving 1 byte. Code:
```
p⁶
```
Explanation:
```
p⁶   # Cartesian product with the input and the space character.
```
Uses the [Jelly encoding](https://github.com/DennisMitchell/jellylanguage/wiki/Code-page).
[Try it online!](http://jelly.tryitonline.net/#code=cOKBtg&input=&args=RnVsbCB3aWR0aCB0ZXh0IGlzIHRleHQgdGhhdCBoYXMgYSBzcGFjZSBhZnRlciBldmVyeSBjaGFyYWN0ZXIsIGluY2x1ZGluZyB0aGUgbGFzdCBvbmUu)
[Answer]
# Python 3.5, 18 bytes
```
print(*input(),'')
```
This works because [`print`](https://docs.python.org/dev/library/functions.html#print)'s default separator is single space.
[Answer]
# [Hexagony](http://github.com/mbuettner/hexagony), ~~21~~ ~~13~~ ~~12~~ 10 bytes
**Code:**
Saved a *lot* of bytes thanks to *FryAmTheEggman*. Code:
```
P,<0/*;@.>
```
Or in a more readable form:
```
  P , <
 0 / * ;
@ . > . .
 . . . .
  . . .
```
[Try it online!](http://hexagony.tryitonline.net/#code=UCw8MC8qO0AuPg&input=RnVsbCB3aWR0aCB0ZXh0IGlzIHRleHQgdGhhdCBoYXMgYSBzcGFjZSBhZnRlciBldmVyeSBjaGFyYWN0ZXIsIGluY2x1ZGluZyB0aGUgbGFzdCBvbmUu)
**Explanation:**
The Hexagony program starts at the top-left corner, immediately setting the memory edge to the ASCII value of `P`, which is 80. After that, we can see that the following path is taken:
[![enter image description here](https://i.stack.imgur.com/Ci09y.gif)](https://i.stack.imgur.com/Ci09y.gif)
We can see that the path taken is: `P,<;.P/0....;*/>`. After the `P`, we take a byte of user input. If this is empty, the following branch (`<`) would direct us to the North East. If the input is non-empty, the branch directs us to the South East. After that, we output the user input using `;`. We set the memory edge back to `P`, which is 80. The zero followed by the mirror is then concatenated to our number, resulting into 800. This is then outputted using the `;` command, but first it is taken modulo 256, resulting into 32, which is the space character. After that, we reset the memory edge using the `*` command and return to loop over the rest of the user input. When we're done with the user input, the path is directed to the North East:
[![enter image description here](https://i.stack.imgur.com/jXv7Q.png)](https://i.stack.imgur.com/jXv7Q.png)
This basically goes to the `@` command, which terminates the program.
Using [Timwi](https://codegolf.stackexchange.com/users/668/timwi)'s amazing [*HexagonyColorer*](https://github.com/Timwi/HexagonyColorer) for making the diagrams.
[Answer]
## Haskell, 11 bytes
```
((:" ")=<<)
```
Usage example: `((:" ")=<<) "Code Golf"` -> `"C o d e G o l f "`.
Map each character `c` to a two element list `[c, space]` and concatenate everything into a single list.
[Answer]
# [Retina](https://github.com/mbuettner/retina), 5
```
.
$& 
```
Note the space at the end of the second line.
`$&` is equivalent to `$0`. Thanks to @mbomb007 for [this link](https://msdn.microsoft.com/en-us/library/ewy2t5e0(v=vs.110).aspx#EntireMatch).
[Try it online.](http://retina.tryitonline.net/#code=LgokJiA&input=RnVsbCB3aWR0aCB0ZXh0IGlzIHRleHQgdGhhdCBoYXMgYSBzcGFjZSBhZnRlciBldmVyeSBjaGFyYWN0ZXIsIGluY2x1ZGluZyB0aGUgbGFzdCBvbmUu)
[Answer]
# JavaScript, 20 Bytes
Simple, I just wish that Array.join added the space to the end so I could save 3 bytes.
```
s=>[...s,``].join` `
```
[Answer]
# Awk, 7 bytes
(4 characters code + 3 characters command line option.)
```
NF++
```
Sample run:
```
bash-4.3$ awk -F '' 'NF++' <<< 'Full width text.'
F u l l   w i d t h   t e x t . 
```
(There is some disagreement on what should be included in the command line option count. I included what is actually passed to the `awk` interpreter: “-”, “F” and a separator between “F” and the empty string parameter. See below what I mean.)
```
bash-4.3$ od -tax1 /proc/`pidof awk`/cmdline 
0000000   a   w   k nul   -   F nul nul   N   F   +   + nul
         61  77  6b  00  2d  46  00  00  4e  46  2b  2b  00
                         ╰────────╯
```
[Answer]
# [><>](https://esolangs.org/wiki/Fish), ~~13~~ 10 bytes
*3 bytes saved thanks to @Sp3000*
```
i:0(?;o 'o
```
[**Try it here**](https://fishlanguage.com/playground/RfSiCr7a5R6wPcPTk). Click the link, then *Submit*, then type some input and press *Give*, and finally run the program with *Start* or *Run without animation*.
### Explanation
```
i       read a character
:       duplicate
0(      is it less than 0?
?;      if so: end program. Else:
o       output read character
 '      push all chars until matching (same) quote. Top character is a space
o       output that character, which is a space. Go back to the beginning
```
[Answer]
## Java, 132 (System.in) or 99 (Program argument) bytes
Can you feel the overhead tonight?
```
class F{public static void main(String[]a){System.out.print(new java.util.Scanner(System.in).nextLine().replaceAll("(.)", "$0 "));}}
class W{public static void main(String[]a){for(char c:a[0].toCharArray())System.out.print(c+" ");}}
```
[shooqie](https://codegolf.stackexchange.com/users/51530/shooqie) figured out [a 6 byte shorter way to do this](https://codegolf.stackexchange.com/a/76010/51825) but I won't steal their approach. I've used it with the STDIN and lambda versions, however.
28 characters for a lambda but that doesn't meet the program requirement.
```
s->s.replaceAll("(.)","$0 ")
```
[Answer]
# Java, 92
```
class T{public static void main(String[]A){System.out.print(A[0].replaceAll("(.)","$0 "));}}
```
[Answer]
# [Cubix](https://github.com/ETHproductions/cubix), 10 bytes
Cubix is a 2 dimensional language developed by @ETHproductions where the commands are wrapped onto a cube. [Try it online](https://ethproductions.github.io/cubix)
```
@.?wi^\oSo
```
This maps onto a cube with edge length 2
```
    @ .
    ? w
i ^ \ o S o . .
. . . . . . . .
    . .
    . .
```
Starts with a input `i`. The flow is redirected north `^` to the top face. `?` If the value is negative turn left to finish `@`, zero carries on into shift right `w` or positive turn right then reflect left `\`. Output character with a trailing space `oSo`.
[Answer]
# [Cubix](https://github.com/ETHproductions/cubix/), 9 bytes
```
@./.i?>So
```
[**See it work online!**](http://ethproductions.github.io/cubix/?code=ICAgIEAgLgogICAgLyAuCmkgPyA+IFMgbyAuIC4gLgouIC4gLiAuIC4gLiAuIC4KICAgIC4gLgogICAgLiAuCg==&input=Q3ViaXg=&speed=20)
Cubix is a language in which the instructions are mapped out onto the face of a cube. This program forms the following cube net:
```
    @ .
    / . 
i ? > S o . . .
. . . . . . . .
    . .
    . .
```
The instruction pointer begins at `i`, which takes another character-code from input and pushes it to the stack. If there is no more input left to be taken, the `?` turns the IP left, where it hits `/`, and is reflected upwards to `@`, which terminates the program.
However, if there is input left, the value will be a character code. As all1 character codes are positive, the `?` makes the IP turn right, where it wraps all the way around the cube, passing `o` on the way which outputs the char. It then hits `/` which makes it loop back around to `>So`, which pushes and prints a space. The IP carries on west until wrapping around back to the `i`, back to the start of the main loop.
1 *If the character is a null byte, it will ignore the `?` and carry on straight ahead, simply outputting a single space.*
---
Of course, there's only so much a written explanation can do, so I highly recommend you view this in the [online interpreter](http://ethproductions.github.io/cubix/?code=ICAgIEAgLgogICAgLyAuCmkgPyA+IFMgbyAuIC4gLgouIC4gLiAuIC4gLiAuIC4KICAgIC4gLgogICAgLiAuCg==&input=Q3ViaXg=&speed=20). There's a "speed" option, which allows you to view the execution as slow or fast as you like.
[Answer]
# [Stax](https://github.com/tomtheisen/stax), 2 bytes
Ties Jelly!
```
0\
```
[Try it at staxlang.xyz!](https://staxlang.xyz/#c=0%5C&i=Full+width+text+is+text+that+has+a+space+after+every+character%2C+including+the+last+one.)
All this does is push `0` to the stack and zip the string from standard input with it, repeating the 0 as necessary. In Stax, code point 0 in a string is usually converted to 32 (space).
This is short enough that packing it into `ûT` does nothing but reduce readability.
[Answer]
# 05AB1E, 4 bytes
```
Sð«J
```
[Try it online.](http://05ab1e.tryitonline.net/#code=U8OwwqtK&input=dGVzdA)
## Explanation
```
Sð«J
S     split string into a list
 ð«   append a space to each element
   J  join
```
[Answer]
# [CJam](https://sourceforge.net/p/cjam/wiki/Home/), ~~5~~ 4 bytes
*1 byte fewer thanks to @FryAmTheEggman*
```
lSf+
```
[**Try it online!**](http://cjam.tryitonline.net/#code=bFNmKw&input=VGhpcyBpcyBhIHRlc3Q)
### Explanation
```
l     e# read line
Sf+   e# map "concatenation" (+) with a space (S) as extra parameter
      e# implicitly display characters in the stack
```
[Answer]
# GolfScript, 6 bytes
```
' ':n*
```
[Try it online!](http://golfscript.tryitonline.net/#code=JyAnOm4q&input=RnVsbCB3aWR0aCB0ZXh0IGlzIHRleHQgdGhhdCBoYXMgYSBzcGFjZSBhZnRlciBldmVyeSBjaGFyYWN0ZXIsIGluY2x1ZGluZyB0aGUgbGFzdCBvbmUu)
[Answer]
### PHP, 39 bytes
```
echo join(' ',str_split($argv[1])).' ';
```
Run it from the command line
```
php fullwidth.php "Full width text is text that has a space after every character, including the last one."
```
<https://eval.in/541179>
[Answer]
# Pyth, ~~5~~ 4 bytes
*Thanks to @FryAmTheEggman for saving a byte.*
```
s*zd
```
[Try it online here](http://pyth.herokuapp.com/?code=%2Bjdzd&input=Full+width+text+is+text+that+has+a+space+after+every+character%2C+including+the+last+one.&debug=0).
[Answer]
# [WhoScript](http://esolangs.org/wiki/WhoScript) 38 bytes
```
1v;pr;e;#0 1;-;i;t=;ti;o;tl;" ";d;>;pf
```
Works best when the string is given at the command line, but it can be done one character at a time in real time as well.
Ungolfed:
```
time_vortex
  psychic_paper read
  duplicate
  # 0 1
  -
  integer
  TARDIS =
  TARDIS if
      opening
  TARDIS landing
  # 20
paradox
pop
psychic_paper flush
```
[Answer]
## [Labyrinth](https://github.com/mbuettner/labyrinth/), 10 bytes
```
<.23.%):,>
```
This terminates with an error, but the error messages goes to STDERR.
[Try it online!](http://labyrinth.tryitonline.net/#code=PC4yMy4lKTosPg&input=RnVsbCB3aWR0aCB0ZXh0)
### Explanation
This is one of the rare cases where a completely linear program is feasible. The loop is achieved via the source code modification commands `<` and `>`, which works because after each iteration we know that the stack is empty again.
`<` cyclically shifts the entire line one cell to the left, so we end up with:
```
.23.%):,><
```
This takes the instruction pointer (IP) with it so the IP is now at the right end of the code and has to move left. Next, the `>` does the opposite modification so it shifts the source code back to
```
<.23.%):,>
```
Now we execute a single iteration (from right to left), before everything starts over:
```
,    Read a character code from STDIN, or -1 at EOF.
:)   Duplicate and increment.
%    Modulo. At EOF this will attempt a division by zero and terminate. Otherwise, we
     have n % (n+1) = n, so we're left with the input character again.
.    Print it back to STDOUT.
32   Turn the top of the stack into a 32.
.    Print it as well (a space).
```
[Answer]
# [Gema](http://gema.sourceforge.net/), 5 bytes
```
?=?\ 
```
Sample run:
```
bash-4.3$ gema '?=?\ ' <<< 'Full width text.'
F u l l   w i d t h   t e x t . 
```
[Answer]
# [MATL](https://esolangs.org/wiki/MATL), 7 bytes
```
tnZ"v1e
```
[**Try it online!**](http://matl.tryitonline.net/#code=dG5aInYxZQ&input=J1RoaXMgaXMgYSB0ZXN0Jw)
### Explanation
```
t    % implicitly take input string and duplicate it
n    % number of elements
Z"   % string with that many spaces
v    % concatenate vertically (2xN array, where N is input length)
1e   % reshape into 1 row. Implicitly display
```
[Answer]
## APL, 5 bytes
```
∊2∘↑¨
```
This takes 2 items for each character in the string, with the effect of adding a space
To make it a program that takes stdin, it's the same number of bytes:
```
∊2↑¨⎕
```
Try it [here](http://tryapl.org/?a=f%u2190%u220A2%u2218%u2191%A8%20%u22C4%20f%20%27Hello%20World%21%27&run).
[Answer]
# brainfuck, ~~24~~ 22 bytes
Simple example using the [shortest known 32](https://esolangs.org/wiki/Brainfuck_constants#32) for the space character(s).
```
,[.>>-[-[-<]>>+<]>-.,]
```
[**Try it online**](http://brainfuck.tryitonline.net/#code=LFsuPj4tWy1bLTxdPj4rPF0-LS4sXQ&input=VGVzdA)
[Answer]
# PHP, 31 bytes
```
<?=chunk_split($argv[1],1," ");
```
takes input from command line argument.
[Answer]
# [Threead](https://github.com/TehFlaminTaco/Threead), ~~45~~ 16 Bytes non-competing.
```
  B[coB]
32c   o
```
Takes input via STDIN.
The first Line/Tape simply reads bytes from STDIN, and writes them. The second line, initially stores a space via `32c`, then at the same time that the next character is being read, outputs that space.
[Try it online!](https://tio.run/nexus/threead#@6@g4BSdnO8Uy2VslKygoJD//7@jk7MLAA "Threead – TIO Nexus")
[Answer]
# Python 2, ~~27~~ ~~25~~ 24 bytes
```
lambda x:' '.join(x)+' '
```
Shorter than Raffi's answer...
*-1 thanks to 60919 (FlipTack).*
[Answer]
# C, 50 bytes
Little bit of `main()` recursion :) 
```
main(c){~(c=getchar())?printf("%c ",c),main():0;}
```
[Try it online!](http://ideone.com/xM3xVg) - If using this on your own machine, use `Ctrl`+`D` to signify EOF.
[Answer]
# C, 56 Bytes (as program argument), 46 Bytes (from stdin)
```
main(int a,char**b){while(*b[1])printf("%c ",*b[1]++);}
```
Plain old C answer. Once compiled, the program needs to be called with a string as it's first parameter, a string with spaces needs to be enclosed in quotes. For the example in the start post:
```
./prog "Full width text is text that has a space after every character, including the last one."
```
Which will output
```
F u l l   w i d t h   t e x t   i s   t e x t   t h a t   h a s   a   s p a c e   a f t e r   e v e r y   c h a r a c t e r ,   i n c l u d i n g   t h e   l a s t   o n e .
```
Solution that reads directly from stdin.
```
main(c){while(c=~getchar())printf("%c ",~c);}
```
One byte less thanks to @FryAmTheEggman
[Answer]
# R, 36 bytes
```
cat(strsplit(readline(),"")[[1]],"")
```
Example:
```
> cat(strsplit(readline(),"")[[1]],"")
Hello R!
H e l l o   R ! 
```
]