Hallo,

ich befürchte fast, du siehst das zu kompliziert.

Wenn du z.B. den String so initalisierst
char MyString [10] = "Hallo";
ist der automatisch Nullterminiert. Du musst mindestens immer ein Byte mehr Platz haben als Zeichen.
sprich
char MyString [5] = "Hallo"; //falsch
char MyString [6] = "Hallo"; //richtig
Zum echten Problem wird das ganze, wenn du dir deine Strings aus Zeichen oder Teilstrings zusammensetzt. Da können wir dir aber kein Beispiel geben, weil wir nicht wissen, wie du das machst. Nach dem letzten 'Nutz'-Zeichen musst du gegeben falls noch eine Null schreiben.
z.B.
MyString [0] = 'H';
MyString [1] = 'a';
...
MyString [5] = 0;
oder
MyString [5] = '\0';

Gruß

Jens