fehler beim algorithmus
-
hallo.
ich brauche einen algorithmus, der bei einem beliebigem string überprüft, ob irgendeines der zeichen, die darin vorkommen, nicht in einem andren string vorhanden ist.
string eins = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //der überprüfstring string test = "AKSJFKASKF"; // funktion gibt true zurück string test2 = "ASKFJALkFAS"; // funktion gibt false zurück, wegen des kleinen k'swas ich bisher habe ist das hier:
bool check_zeichen ( char das) { bool returnbool = false; string alphabet = "ABCDEFGHIJKLMNOPQRSTUVXYZ"; for(int i; i < alphabet.length(); i++) { if ( das == alphabet[i] ) { returnbool = true; break; } } return returnbool; } bool check_eing_string (string eing) { bool check; check = true; for(int i; i < eing.length(); i++) { if (check_zeichen(eing[i]) == false) { check = false; } } return check; }er gibt aber immer false zurück. wo liegt mein fehler? kann mir wer helfen?
grüße
-
Hi,
habe mir jetzt deinen Quellcode nicht weiter angeschaut, aber ich denke du kannst das auch einfacher loesen:#include <iostream> #include <string> using namespace std; bool Test(string const& s1, string const& s2) { return s2.find_first_not_of(s1) == string::npos; } int main(int argc, char *argv[]) { string s1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //der überprüfstring string s2 = "AKSJFKASKF"; // funktion gibt true zurück string s3 = "ASKFJALkFAS"; // funktion gibt false zurück, wegen des kleinen k's cout << Test(s1, s2) << endl; cout << Test(s1, s3) << endl; return 0; }Gruss,
DeSoVoDaMu
-
wahh.. das geht ja sogar xD
ca. 20 zeilen eingespart. woah.danke.
kann ich aber noch irgendwie machen, dass 0 und 1 bei der rückgabe vertauscht werden? mit not oderso? naja, eher nur bei schaltungen.
-
inline bool some_dumpshit_function (std::string const& lhs, std::string const& rhs) { return (lhs.find_first_not_of (rhs) != std::string::npos); }