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

????????????

kannste das mal näher erläutern odre haste noch ne lösung die für einen anfänger einfacher ist

dachte da so an strstr oder strcmp oder so :(

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>

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...