Reverse multiple strings separated by comma Recently I did a lot of practice problems in brainfuck to learn better about how to use it (and to get more competent in general). Today I write a program to manipulate the input such that every word (separated by comma ,) is printed in reverse, while the commas are kept in place, which I'm quite proud of. Example provided in the statement: Input: Hello,world\0 Output: olleH,dlrow

Feel free to rip my code (and comments as well) apart and give some pointers on how my code could be improved!

&gt;, 1:read
[ ~a:varchar a:in
[&gt;+&gt;+&lt;&lt;-] a:0 b:c:in
&gt;&gt;&gt;&gt;++++[&lt;+++++ +++++ +&gt;-]&lt;[&lt;-&gt;-] a:0 b:in [c:in-44]
&lt;[[-]&lt;[&lt;+&gt;-]&gt;&gt;] if c then a:in else
&lt;[&lt;&lt;[.&lt;]&gt;[&gt;]&gt;.&gt;]&lt; print reverse then comma
, redo a':read ]
&lt;[.&lt;] print reverse
Upon learning more brainfuck, I've learned that my loop that subtracts 44 could be improved:

Before

&gt;&gt; tmp2=0 ++++[&lt; tmp1=0 +++++ +++++ + &gt;-] tmp1 is 44
&lt;[&lt;-&gt;-] subtract tmp1 from ptr


After

&gt;  tmp1=0 ++++[&lt; ptr    ----- ----- - &gt;-]


This prevents actually creating the value 44 and performing an additional ~44 operations.