PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wörterbuch in C++


hasang321654
2003-01-17, 16:25:51
Hallo ich wollte mal Fragen, ob dieser Quellcode geht!

#include <iostream.h>
int main()
{
char a[] = "a";
char Wort[12];
int eight;
cout << "Geben Sie bitte ein Wort ein : "; cin >> Wort;

if(Wort == a)
{
cout << "a ist der Anfang des Alphabets, a ist ein Vokal usw.. \n";
}

else
{
cout << "Dieses Wort ist im Wörterbuch nicht vorhande \n";
}

cin >> eight;

Unregistered
2003-01-17, 16:26:52
vorhanden!

Wenn nicht, dann könnt ihr mir dann eingeben wie ich das machen könnte?

Nagilum
2003-01-17, 17:05:13
Ne, wird nicht gehen, da sich ein paar Fehler eingeschlichen haben. Du kannst z.B. den Vergleichsoperator nicht auf Char-Arrays anwenden.

Schau dir mal die STL (Standard Template Library) an. Da findest du fertige Klassen für Strings und auch für Hashtables. Mit den Hashtables kannst du Daten als Schlüssel/Wert-Kombinationen speichern. Also haargenau das, was ein Wörterbuch macht.

Xmas
2003-01-17, 19:25:24
hash_map<string,string> oder hash_multimap<string,string> wären hier wohl brauchbar, letzteres wenn für ein Schlüsselwort mehrere Definitionen möglich sein sollen.

Unregistered
2003-01-17, 21:16:47
Tut mir leid aber ich bin kein Profi1!

Exxtreme
2003-01-17, 21:50:49
Das kann nicht funktionieren da man in C den Vergleichsoperator "==" bei Arrays nicht verwenden kann. Schau dir mal die strcmp an. Damit geht's.

Hier die Deklaration:

int strcmp(const char *s1, const char *s2);

Xmas
2003-01-18, 02:28:32
Originally posted by Unregistered
Tut mir leid aber ich bin kein Profi1!
Das muss geändert werden ;)


#include <iostream>
#include <string>
#include <map>

using namespace std;

int main()
{
map <string, string> Woerterbuch;
typedef pair <string, string> String_Pair;

Woerterbuch.insert( String_Pair( "a", "a ist der Anfang des Alphabets, a ist ein Vokal usw." ) );
// ... Wörter von A bis Z
Woerterbuch.insert( String_Pair( "z.Zt.", "Abkürzung: zur Zeit" ) );

string Wort;
cout << "Geben Sie bitte ein Wort ein: "; cin >> Wort;

map <string, string> :: const_iterator Eintrag;
Eintrag = Woerterbuch.find( Wort );

if( Eintrag == Woerterbuch.end() )
cout << "Es wurde kein passender Eintrag gefunden." << endl;
else
cout << Eintrag->second << endl;

return 0;
}