Vergleich von 2 stringarrays
-
es muss heißen
if(prüfer.find(test[i])!= string::npos)
-
Diese Umlaute in den Bezeichnern... *schauder*
-
David_pb schrieb:
Diese Umlaute in den Bezeichnern... *schauder*
Ich wusste auch gar nicht, dass das geht

-
Sama ist die Reihenfolge dir auch wichtig? Sonnst ist nämlich GreyHound's Vorschlag sehr schön

#include <iostream> #include <string> #include <algorithm> int main() { std::string kennzahl; std::string allowed_letter("0123456789.:,;"); do { std::cout << "Neue Kennzahl: " << std::flush; std::cin >> kennzahl; } while (kennzahl.find_first_not_of(allowed_letter) != std::string::npos); }...
Wenn die Reihenfolge drin sein muss:
#include <iostream> #include <string> int main() { std::string test("012sd567o9"); std::cout << "String: " << test << std::endl; std::string allowed_letter("0123456789.:,;"); std::size_t search_len = std::min<std::size_t>(test.length(), allowed_letter.length()); for (std::size_t pos = 0; pos < search_len; ++pos) if (test.at(pos) != allowed_letter.at(pos)) std::cout << "Nicht identisch mit Teststring bei " << pos + 1 << std::endl; }...
-
kann mir vielei noch einer erklären was das string npos bedeutet??
und is das "find_first_not_of" ( )" ne funktion?=???
-
//Traditionell mit Hilfe der Basistechniken geht es z.B. so: #include <string> #include <iostream> using namespace std; int main() { string teste = "0123r45"; string pruefer = "0123456789"; for (size_t i = 0, len = teste.length (); i < len; i++) if (*(teste.c_str ()+i) != *(pruefer.c_str ()+i)) cout << "Unterschied an Position " << i << " teste = " << teste.c_str ()[i] << " pruefer = " << pruefer.c_str ()[i] << endl; }
-
Hallo
Firefighter schrieb:
kann mir vielei noch einer erklären was das string npos bedeutet??
und is das "find_first_not_of" ( )" ne funktion?=???
Findest du alles hier erklärt.
bis bald
akari
-
wie kommst du den auf 174 beiträge wenn dir nichma die strings usw. bekannt sind?
-
naja durch viele fragen, und ich habe mich vorher mehr mit zahlen in c++ beschäftigt und sowas...also mti strings hatte ich noch net viel jemacht
-
kennzahl.find_first_not_of(allowed_letter) != std::string::nposNja ... std::string::npos wird bsw. von den find-Funktionen eines std::strings zurück gegeben, wenn etwas nicht gefunden werden konnte ... bzw. wird es auch bei der erase-Funktion genutzt um einfach den kompletten String zu löschen ...
std::size_t search_len = std::min<std::size_t>(test.length(), allowed_letter.length());bewirkt halt, das du die Länge von dem kürzeren String nimmst, damit du nicht über die Grenzen des Speicherbereichs von einem von beiden kommst.
if (test.at(pos) != allowed_letter.at(pos))nimmst halt die Zeichen an(at) Position pos ... in dem Fall muss nicht unbedingt at genommen werden(normal ist es aber immer sinnvoll da es eine Exception wirft wenn du außerhalb des Speicherbereiches bist!) ... kannst auch operator[] da ja mit std::min sichergestellt ist, das du nicht aus dem String rauskommst.