C++程式定義使用者名稱過短異常並驗證使用者名稱


假設我們有一系列使用者名稱,我們需要根據一些條件檢查使用者名稱是否有效。因此,我們需要定義一個異常,當用戶名的長度小於 5 個字元時丟擲。對於有效的使用者名稱,我們應該返回“Valid”(有效),對於無效的使用者名稱,我們應該返回“Invalid”(無效),對於過短的使用者名稱,我們應該丟擲異常。有效的使用者名稱條件如下:

  • 使用者名稱必須是五個字元長

  • 使用者名稱中不能有兩個連續的 'w'

因此,如果輸入類似於 unames = ["amit", "to", "paul_tim", "greg_harry", "towwer"],則輸出將是 [Too short: 4, Too short: 2, Valid, Valid, Invalid],因為前兩個使用者名稱太短,最後一個使用者名稱有兩個連續的 'w'。其他使用者名稱都是有效的。

為了解決這個問題,我們將遵循以下步驟:

  • 定義一個名為 BadLengthExcaption 的異常

  • 它將返回長度資訊

  • 定義一個名為 validation() 的函式,它將接收 u_name 作為引數

  • isValid := true

  • n := u_name 的大小

  • 如果 n < 5,則

    • 丟擲一個 BadLengthException(n)

  • 初始化 i := 0,當 i < n-1 時,更新(i 增加 1),執行以下操作:

    • 如果 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

更新於: 2021年10月7日

728 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告