Arduino Memory FULL, I don't know why

If you want to do text manipulation: use string ('\0' terminated array of char).
String (with capital) is a class (OOP).
OOP separates function from implementation. The representation in memory is not accessible to you as a user of the class. And it is supposed to be like that because you may easily mess things up (dangling pointers, writing outside array bounds, etc.) . The class will be built in such a way that from the outside you cannot mess things up.
Our famous football player used to say "every advantage comes with a disadvantage"[Cruijff].
OOP hides things so you do not have to bother about it. At the same time, it is all hidden, so you cannot mess around if you want to (unless you have the source code and fully understand it).
By the way the '\0' is a reserved character. A zero '0' has a different character number (see ascii table).