Integerzahl nach vorkommen absuchen...
-
wie kann ich eine zahl darauf pruefen, ob in ihr eine bestimmte zahl vorkommt!
Beispiel:Ich will alle Zahlen, in denen eine 7 enthalten ist rausfilter....
wie komm ich an die 7 ran?
-
Hallo
wenn du als die Zahl als Zeichenkette meinst :
nimm std::string und benutzt std::string::find() um die 7 zu finden.bis bald
akari
-
nee nee meine schon Zahl...
for (unsigned int i = 1;i<=100;i++) { //hier soll wenn i eine 7 enthält was gemacht werden... }
-
aber so geht es doch auch oder?
naja gut, ist im endeffekt string....int main(int argc, char* argv[]) { stringstream sstr; string str; for(int i=1;i<=100;i++) { sstr<<i; sstr>>str; sstr.clear(); if(str.find('7',0)!=string::npos) cout<<"Hallo"<<endl; //hier eben was du machen willst else cout<<i<<endl; } getch(); return 0; }
-
Hallo
Also ich weiß, entweder ist das ja zu einfach oder ich habs wieder falsch verstanden :
for (unsigned int i = 1;i<=100;i++) { if (i == 7) { // mach etwas } }
bis bald
akari
-
in string umwandeln und dann nach der 7 suchen
#include <sstream> // ... int i=//... if(static_cast<std::stringstream&>(std::stringstream()<<i).str().find('7')!=std::string::npos)//...
-
akari schrieb:
Hallo
Also ich weiß, entweder ist das ja zu einfach oder ich habs wieder falsch verstanden :
for (unsigned int i = 1;i<=100;i++) { if (i == 7) { // mach etwas } }
bis bald
akarinaja, und 87?? da is ja 7 auch drin!
-
camper schrieb:
in string umwandeln und dann nach der 7 suchen
#include <sstream> // ... int i=//... if(static_cast<std::stringstream&>(std::stringstream()<<i).str().find('7')!=std::string::npos)//...
ich glaube mal, mein ist fuer den anfaenger einfacher zu verstehen , und hat sich nach der FAQ gerichtet!
-
Hallo
okay, dann nimm wie bereits gesagt std::string als Zwischenspeicher. Dafür hast du ja jetzt mehrere Lösungen.
bis bald
akari
-
akari schrieb:
Hallo
okay, dann nimm wie bereits gesagt std::string als Zwischenspeicher. Dafür hast du ja jetzt mehrere Lösungen.
bis bald
akariund welche ist anfängerfreundlicher? *kindergartenspielchen*
Hmm...mir fällt aber auch grad keine lösung für ints ein ohne irgendein cast oder so....
-
5er1al(ausgeloggt) schrieb:
ich glaube mal, mein ist fuer den anfaenger einfacher zu verstehen , und hat sich nach der FAQ gerichtet!
meins sollte auch nicht zu ernst genommen werden - ist ja klar, dass hier auch bessere lösungen angeboten werden
es geht im übrigen auch ganz ohne strings:
bool has7(int i) { while ( i ) { if ( i % 10 == 7 ) return true; i /= 10; } return false; }
-
5er1al schrieb:
Hmm...mir fällt aber auch grad keine lösung für ints ein ohne irgendein cast oder so....
Man könnte noch selber die einzelnen Stellen durch Division und Modulo durch 10 abfragen und auf 7 prüfen.
/Edit : zu spät
bis bald
akari
-
jo daran hatte ich überhaupt nicht gedacht....
-
camper schrieb:
5er1al(ausgeloggt) schrieb:
ich glaube mal, mein ist fuer den anfaenger einfacher zu verstehen , und hat sich nach der FAQ gerichtet!
meins sollte auch nicht zu ernst genommen werden - ist ja klar, dass hier auch bessere lösungen angeboten werden
es geht im übrigen auch ganz ohne strings:
bool has7(int i) { while ( i ) { if ( i % 10 == 7 ) return true; i /= 10; } return false; }
funktioniert das auch bei zahlen 70-71??
bin ich mir grad nich ganz sicher...
-
ich meine 70-79
shice ausgeloggt sein
-
Hallo
Ja, es geht für alle Stellen, wegen dem while.
bis bald
akari
-
bool find(int zahl,unsigned int suchzahl){ //wenn die zahl negativ ist, positiv machen if(zahl<0)zahl*=-1; //test auf 0 if(zahl==0&&suchzahl==0){ return true; } //normaler test while(zahl!=0){ int stelle=zahl%10;//letzte stelle raussuchen if(stelle==suchzahl) return true; zahl/=10;//letzte stelle löschen } return false; }