diff --git a/stoppesteder.cpp b/stoppesteder.cpp index f919e9bab986013d67e81a2ea3bde5936066c70d..1ce1d3db9497866ae607d03c3257675a0dfe8898 100644 --- a/stoppesteder.cpp +++ b/stoppesteder.cpp @@ -33,6 +33,16 @@ bool Stoppesteder::finnesIndeks(const int nr){ return false; // Ingen funn } +/** + * sjekker om en string inneholder tall. + * + * @param nvn + * @return true hvis ikke tall + * @return false hvis har tall + */ +bool Stoppesteder::ikkeHarTall(const string nvn){ + return any_of(nvn.begin(), nvn.end(), ::isdigit); +} /** * Sjekker om Stoppesteder sin vektor er tom eller ei * @@ -224,6 +234,7 @@ void Stoppesteder::lesFraFil() { /** * Legger til et nytt stoppested i datastrukturen, hvis mulig (ingen duplikat) * + * @see Stoppesteder::ikkeHarTall(...) * @see Stoppesteder::byttBokstaver(...) * @see Stoppesteder::finnDuplikat(...) * @see Stoppested::Stoppested(...) @@ -234,7 +245,7 @@ void Stoppesteder::nyStop() { // TODO: Lag en funksjon som sørger for at et stoppesteds navn ikke // TODO: kun kan være tall! cout << "\nNavn på stoppested: "; getline(cin,navn); // Leser navn - while (navn.size() < 2) { // Looper hvis navn er >2 tegn + while (navn.size() < 2 || ikkeHarTall(navn)) { // Looper hvis navn er >2 tegn cout << "\nNavn må være 2 tegn eller mer. Prøv igjen: "; getline(cin, navn); } diff --git a/stoppesteder.h b/stoppesteder.h index aaa8d4c0670d933830d06e03c3630a66e7956eed..e7b1ac27d1893db4ae7c7da81a89f26fc9fbbdc8 100644 --- a/stoppesteder.h +++ b/stoppesteder.h @@ -20,6 +20,7 @@ class Stoppesteder { std::vector <Stoppested*> stopper; public: bool finnesIndeks(const int nr); + bool ikkeHarTall(const std::string nvn); bool tom(); int hentIndeksVhaNavn(const std::string nvn); std::string byttBokstaver(const std::string nvn);