[C++] Ersetzen von Buchstaben

hemorieder

Lieutenant
Registriert
März 2003
Beiträge
652
Hey,

ich muss gerade für meine Schule das Spiel "Hangman" programmieren, ich komme auch gut vorran, nur was einfach nicht funktionieren will, ist dass ersetzen der _ durch den jeweiligen Buchstaben.

Der Ablauf des Spieles ist wie folgt, der User gibt ein Wort ein, was später Spieler 2 erraten muss, dieses Wort wird in char wort[15] gespeichert, dann wird per strlen die länge des Wortes (int laenge) ermittelt und die Anzahl der _ berechnet, dass sieht geschieht so:

Code:
for (int a=0; a<laenge; a++)
     {
	cout << "_ ";
     }

Jetzt gibt der Spieler den Buchstaben "a" ein, sagen wir mal das Wort wäre "Hallo", dann müsste ja aus " _ _ _ _ _ " "_ A _ _ _ " werden.

Nur habe ich mal garkeine Idee wie ich das machen kann.

Mein Compiler ist Microsoft Visual Studio 2003.

Für Hilfe wäre ich echt dankbar.

Danke im vorraus.

mfg

hemorieder

P.S: Solltet ihr mehr Code brauchen, dann sagt bescheid.
 
Ich würde die "_" genauso wie das zu erratende wort als char[] speichern. Nach Eingabe eines Buchstabens gehst Du vergleichend durch das wort-array und bei einem Treffer kopierst du den Inhalt an der jeweiligen Stelle von wort in das "_"-array, das sich so nach und nach mit Buchstaben füllt.
 
nur das char arrays für strings in c++ nichts zu suchen haben.

mit einem std::string gehts aber genauso einfach. ich will dir jetz nicht die ganze lösung vorsagen(schließlich is das hier kein hausaufgaben board :P), aber wenn du nach std::string, begin, end und iterator googlest solltest du eigentlich alles nötige finden.
 
Zuletzt bearbeitet:
so ich hab jetzt noch was geändert, nämlich speicher ich jetzt das verschlüsselte wort auch in nem array, dass heist wort_crypt. Die generierung der _ erfolgt jetzt so:

Code:
for (int a=0; wort[a]; a++)
		{
			wort_crypt[a] = '_';

		}	
		wort_crypt[laenge] = 0;
		
		for (a=0; wort[a]; a++)
		{
		cout << wort_crypt[a] << ' ';
		}

nur wie ersetze ich jetzt ?
 
Dein Code hat ja ne komische Formatierung!

du musst einfach ein Array haben für das angezeigte Wort und eins für dein zu Erratendes!

Wenn als Eingabe ein Buchstabe erfolgt, suchst du das in dein zu erratendes Wort.
Wenn Du es gefunden hast, dann merkst du dir die Stelle und trägst sie in deinem angezeigten Wort ein!

Gruß Steff

Code:
for (int a=0; wort[a]; a++){
[INDENT]wort_crypt[a] = '_';[/INDENT]
}	
char fertig [] = {"b","e","i","s","p","i","e","l"};

void suche_buchstabe(char temp){
[INDENT]for (int a=0; wort[a]; a++){
[INDENT]if(wort[a] == temp){
[INDENT]fertig[a] = temp;[/INDENT]}[/INDENT]
}[/INDENT]
}

und dann noch neu Ausgeben!

=> Keine Garantie! mache egrade eher JAVA, und habe es kurz aus dem Kopf raus gemacht!

Gruß
Steff
 
Zuletzt bearbeitet:
Zurück
Oben