Add chapter 18 exercises (still missing custom nftw)

@rmscarenhas  :disappointed: 
Why are you keeping the value currently being hold by the given buffer in these string manipulations (here and down at the inner loop)?

If I have a previously used buffer (i.e., one with content from another function call, for example), I expect that to be completely overridden with the result from this function. However, the way you are joining strings is so that if I have some content on the passed buffer, we would always keep that at the end of the string.