A
Auch wenn es nicht rein ANSI-C ist, geb ich ne Antwort ab.
@Tommy
Dein Fehler rührt daher, dass du vergessen hast deine Variablen zu initialisieren (bzw. nullzusetzen). Wenn in C(++) Speicher reserviert wird und die Varible darauf zeigt, dann heißt das nicht gleich, dass da auch nichts drinsteht! Für deinen Fall heißt das, du musst umgekehrterstring mit "" inialisieren. Schließlich sucht strcat() solange im String bis es das Stringendezeichen gefunden hat und hängt da dann den Text dran.
Also immer dran denken, deine Variablen zu initialisieren!!