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
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP