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