Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

moin moin

ich hab folgendes problem

ich schreibe verschiedene zahlen (2-3stellig) in einen string und möchte nun vermeiden das zahlen doppelt reingeschrieben werden.

wer hilft ?

Geschrieben

Erzeuge ein STL-Set und checke einfach ab, ob die Zahl schon geschrieben wurde (jede Zahl ist dort nämlich nur einmal erlaubt) oder mache Dir ein Array, welches die Zahlen als int von mir aus beinhaltet und gehe es jedesmal durch, ob die Zahl schon vorhanden ist.

Geschrieben

if !(strstr(destinationstring,numberstring))

strcat(destinationstring,numberstring);

Darauf achten, daß Destionationstring auch groß genug ist, weil hier nirgendwo eine Bereichsprüfung stattfindet.

<FONT COLOR="#a62a2a" SIZE="1">[ 06. Dezember 2001 14:02: Beitrag 3 mal editiert, zuletzt von Crush ]</font>

Geschrieben

Kleine Frage nebenbei! Wat is bitte ein:

STL-Set

Crush:

<BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR> Erzeuge ein STL-Set und checke einfach ab, ob die Zahl schon geschrieben wurde (jede Zahl ist dort nämlich nur einmal erlaubt) oder mache Dir ein Array, welches die Zahlen als int von mir aus beinhaltet und gehe es jedesmal durch, ob die Zahl schon vorhanden ist.

Geschrieben

STL = Standard Template Library = Vorlagenklasse für (Daten-)Container aller Art

Ein Set entspricht einer Menge. Hier werden Zahlen aufgenommen, allerdings darf jede Zahl nur einmal vorkommen (ansonsten muß man das Multiset benutzen). Man muß dem Template den Container-Typ angeben, welcher in diesem (vielleicht blöden) Beispiel <int> ist.

Man kann leicht herausfinden, ob eine Zahl im Container enthalten ist, indem man sich einen Zeiger auf einen gesuchten Eintrag finden läßt und wenn es der gesuchte Wert ist, dann hat man ihn gefunden (ich mach das indem ich die Zahl einfach vom Ergebnis abziehe - nicht die feine englische Art, klappt aber). Ansonsten wird ein Zeiger auf ein Speichermußter zurückgegeben (letzer freier Eintrag der Liste)(0xdcdcdcdc).

#include <set>

set<int> stlint;

stlint.insert(1);

stlint.insert(5);

stlint.insert(9);

set<unsigned int>::iterator i=stlint.begin();

if (!(*(i=stlint.find(1))-1)) TRACE("Ist drin");

if (!(*(i=stlint.find(3))-3)) TRACE("Ist drin");

if (!(*(i=stlint.find(5))-5)) TRACE("Ist drin");

if (!(*(i=stlint.find(8))-8)) TRACE("Ist drin");

if (!(*(i=stlint.find(9))-9)) TRACE("Ist drin");

<FONT COLOR="#a62a2a" SIZE="1">[ 12. Dezember 2001 17:06: Beitrag 2 mal editiert, zuletzt von Crush ]</font>

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...