On Wednesday, August 17, 2016 at 1:52:47 PM UTC-4, Rishabh Raghunath wrote: > > For Example: Writing a Encrypting program requires me to modify the > characters in the string.. >
This is a pretty bad example, because encryption almost always (a) doesn't work in-place and (b) only looks at raw bytes (ignoring whether they are "characters"). Similarly lot of the very low-level C-like operations that you might want to do actually involve raw bytes, and so you are better off working with a byte array, which you can obtain by Vector{UInt8}(some string) and can subsequently convert to a string via String(some byte array). If you are creating a string incrementally, you can do that (roughly) in-place with an IOBuffer() as Jacob mentioned. A lot of things that you might *think* are do-able in-place, like converting a string to upper-case, are actually *not* possible to do in-place if you have non-ASCII data, because strings are typically stored in a variable-length encoding (UTF-8 is the default in Julia).