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.
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);
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;
}
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.