Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo zusammen,

ich bräuchte mal wieder etwas Hilfe.

Wie kann ich in c++ überprüfen, ob eine Zahl in einer anderen enthalten ist.

Beispiel:

Zahl1:7

Zahl2:247

Ich würde gerne prüfen ob die 7 in der 247 enthalten ist.

Gruß

Michael

Geschrieben

meine c-zeit is zwar scho ne weile her, aber gabs nicht mal sowas wie itoa (zum umwandeln von zahlen in strings) und instr (um in nem string einen anderen zu suchen)?

musst mal die msdn bemühen.

lg

jasso

Geschrieben

Da das, was du "enthalten" nennst, keine direkte Eigenschaft der Werte der Zahlen ist, sondern vor der Darstellung in einem bestimmten Zahlensystem (in diesem Fall das Dezimalsystem) abhängt, ist die Umwandlung in einen String mit der dezimalen Schreibweise der Zahlen (wie jasso schon sagte) die einfachste Möglichkeit, das zu prüfen.

Solange die enthaltene Zahl nur eine Ziffer hat, könntest du auch die zu durchsuchende Zahl durch wiederholte Division durch 10 und Prüfung des Rests abarbeiten.

Aber was ist nach deiner Definition von "Enthalten" mit diesen Fällen?

Ist 22 in 212 enthalten?

Ist 23 in 32 enthalten?

Falls ja, muss man wieder anders vorgehen. Dann müsstest du zuerst exakt erklären, was du mit "Enthalten" meinst.

Geschrieben

Hallo,

vielleicht solltes du ein weniger genauer sagen was du vor hast. Ich würde sie wohl auch in Strings umwandeln. Schau dir doch hierzu mal die <string> und <sstream> aus der Standardbibliothek an. Hab jetzt auf die schnelle mal was getippelt, müsste hinhauen, habe aber keine Möglichkeit zum testen hier im Moment. Vielleicht hilft es dir ja.

#include <iostream>

#include <sstream> //zum Umwandeln benötigt, ostringstream

#include <string> //String-Funktionen

using namespace std; //der bequemlichkeit jetzt schnell wegen

int main () {

int zahl1=1,zahl2=247,n; // Variablen deklarieren

string str1,str2;

ostringstream outStream1,outStream2;

outStream1 << zahl1; // aus sstream, zahl1 in outStream1

str1=outStream1.str(); // outStream1 in str1 auslesen

outStream2 << zahl2;

str2=outStream2.str();

n=str2.find(str1); // in str2 nach str1 suchen

if (n>=0)

cout << "Die " << zahl1 << " ist in " << zahl2 << " enthalten!" << endl;

else

cout << "Die " << zahl1 << " ist in " << zahl2 << " nicht enthalten!" << endl;

return 0;

}

Ansonsten sag doch einfach mal was du genau suchst.

Gruß

Robby

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