Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में छोटे उपयोगकर्ता नाम के लिए अपवाद परिभाषित करने और उपयोगकर्ता नाम सत्यापित करने का प्रोग्राम


मान लीजिए हमारे पास उपयोगकर्ता नामों की एक स्ट्रिंग है और हमें कुछ शर्तों के आधार पर जांचना है कि उपयोगकर्ता नाम वैध है या नहीं। इसलिए हमें एक अपवाद परिभाषित करना होगा जो तब फेंका जाता है जब उपयोगकर्ता नाम की लंबाई 5 वर्णों से कम हो। हमें वैध उपयोगकर्ता नाम के लिए "Valid", अवैध के लिए "Invalid" और छोटे उपयोगकर्ता नामों के लिए अपवाद फेंकना होगा। वैध उपयोगकर्ता नाम की शर्तें हैं:

  • उपयोगकर्ता नाम पांच वर्ण लंबा होना चाहिए
  • उपयोगकर्ता नाम में लगातार दो 'w' नहीं होने चाहिए

उदाहरण के लिए, यदि इनपुट unames = ["amit", "to", "paul_tim", "greg_harry", "towwer"] है, तो आउटपुट होगा: [Too short: 4, Too short: 2, Valid, Valid, Invalid] क्योंकि पहले दो बहुत छोटे हैं, और अंतिम में दो लगातार 'w' हैं। अन्य ठीक हैं।

समाधान दृष्टिकोण

इस समस्या को हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • BadLengthException नामक एक अपवाद परिभाषित करें
  • यह लंबाई के साथ संदेश लौटाएगा
  • validation() फंक्शन परिभाषित करें, जो u_name लेगा:
  • isValid := true
  • n := u_name का आकार
  • यदि n < 5:
    • BadLengthException(n) फेंकें
  • i := 0 से n-2 तक:
    • यदि u_name[i] == 'w' और u_name[i+1] == 'w':
      • isValid := false
  • isValid लौटाएं
  • मुख्य विधि से:
    • unames में प्रत्येक उपयोगकर्ता नाम u_name के लिए:
      • validate(u_name) कॉल करें
      • यदि वैध तो VALID प्रिंट करें
      • अन्यथा यदि अवैध तो INVALID प्रिंट करें
      • अन्यथा यदि लंबाई छोटी है तो Too Small प्रिंट करें

उदाहरण

बेहतर समझ के लिए निम्नलिखित कार्यान्वयन देखें:

#include <iostream> #include <vector> #include <exception> using namespace std; class BadLengthException{     public:     int x;     BadLengthException(int n) {         x=n;     }     int what() const throw(){return x;} }; bool validation(string u_name) {     bool isValid = true;     int n = u_name.length();     if(n < 5) {         throw BadLengthException(n);     }     for(int i = 0; i < n-1; i++) {         if(u_name[i] == 'w' && u_name[i+1] == 'w') {             isValid = false;         }     }     return isValid; } int main() {     vector<string> unames = {"amit", "to", "paul_tim", "greg_harry", "towwer"};     for(int i = 0; i < unames.size(); i++){         string u_name = unames[i];         try {             bool isValid = validation(u_name);             if(isValid) {                 cout << "Valid" << '\n';             } else {                 cout << "Invalid" << '\n';             }         } catch (BadLengthException e) {             cout << "Too short: " << e.what() << '\n';         }     } } 

इनपुट

{"amit", "to", "paul_tim", "greg_harry", "towwer"}

आउटपुट

Too short: 4 Too short: 2 Valid Valid Invalid
  1. C++ में घनाभ का आयतन और पृष्ठीय क्षेत्रफल C++ में घनाभ का आयतन और पृष्ठीय क्षेत्रफल

    घनाभ क्या है?घनाभ एक त्रि-आयामी वस्तु है जिसके छह फलक आयताकार आकार के होते हैं जिसका मतलब है कि इसकी लंबाई और चौड़ाई अलग-अलग होती है। घन और घनाभ में अंतर यह है कि घन की लंबाई, ऊंचाई और चौड़ाई समान होती है जबकि घनाभ में ये तीनों समान नहीं होती।घनाभ के गुण हैं -छह फलक12 किनारे8 शीर्षनीचे घन का चित्र द

  1. C++ में घन का आयतन और पृष्ठीय क्षेत्रफल C++ में घन का आयतन और पृष्ठीय क्षेत्रफल

    घन क्या है?घन एक त्रि-आयामी वस्तु है जिसके छह फलक वर्गाकार आकार के होते हैं जिसका मतलब है कि इसकी लंबाई और चौड़ाई समान होती है। घन एकमात्र नियमित हेक्साहेड्रॉन है जिसमें निम्नलिखित गुण हैं -छह फलक12 किनारे8 शीर्षनीचे घन का चित्र दिया गया हैसमस्याभुजा दी गई है, कार्य घन का कुल पृष्ठीय क्षेत्रफल और आय

  1. C++ में क्विकसॉर्ट प्रोग्राम C++ में क्विकसॉर्ट प्रोग्राम

    क्विकसॉर्ट क्या है? क्विकसॉर्ट एक सॉर्टिंग तकनीक है जो अनसॉर्टेड सूची (सरणी) को सॉर्ट करने के लिए तुलनाओं का उपयोग करती है। क्विकसॉर्ट को पार्टीशन एक्सचेंज सॉर्ट के नाम से भी जाना जाता है। यह एक स्थिर सॉर्ट नहीं है, क्योंकि समान सॉर्ट आइटम्स का सापेक्ष क्रम संरक्षित नहीं रहता। क्विकसॉर्ट एक सरणी प