Warum benutzt du dafür die Funktion strcat? Das ist ein unnötiger Aufruf und damit unnötige Performance einbusse. Weiterhin erwartet die Funktion strcat ein char Array was auch Null Terminiert sein muss. Die Funktion strcat ist also nicht dafür geeignet einen einzlnen char an ein char Array anzuhängen. Ich würde einfach immer mitzählen der wie viele Buchstabe es ist und dann direkt passwort[x] = valar[m]; machen. Am Ende dann passwort[x] = 0; und gut ist. x könnte natürlich gut eine int Variable sein die mit 0 initialisiert wird und jedes mal mit x++; erhöht wird wenn ein Buchstabe hinzugefügt wird. Also ungefähr so:
Code:int x = 0; passwort[x++] = valar[m]; passwort[x++] = valar[n]; passwort[x] = 0;