求助!我要被折磨死了……
#include <bits/stdc++.h>
using namespace std;
string s;
int sum, cnt;
bool CharCheck(char chr) {
if (chr >= 'A' && chr <= 'Z'
|| chr >= 'a' && chr <= 'z'
|| chr == '_'
|| chr >= '0' && chr <= '9')
return 1;
return 0;
}
int main() {
cin >> s;
if (s.find('@') == string::npos) {
cout << "NO";
return 0;
}
int i = 0;
for (; i < s.size(); i++) {
if (s[i] == '@') break;
if (!CharCheck(s[i])) {
cout << "NO";
return 0;
}
}
if (i < 1 || i > 16) {
cout << "NO";
return 0;
}
i++;
for (; i < s.size() && s[i] != '/'; i++) {
sum++;
if (s[i] == '.') {
cout << "NO";
return 0;
}
cnt = 0;
while (i < s.size() && s[i] != '.' && s[i] != '/') {
if (!CharCheck(s[i])) {
cout << "NO";
return 0;
}
i++, cnt++;
}
if (s[i] == '/')
break;
if (cnt < 1 || cnt > 16) {
cout << "NO";
return 0;
}
}
if ((sum < 1 || sum > 32) || (cnt < 1 || cnt > 16)) {
cout << "NO";
return 0;
}
if (s[i] == '/') {
if (s[i - 1] == '.') {
cout << "NO";
return 0;
}
i++;
cnt = 0;
for (; i < s.size(); i++) {
cnt++;
if (!CharCheck(s[i])) {
cout << "NO";
return 0;
}
}
if (cnt < 1 || cnt > 16) {
cout << "NO";
return 0;
}
}
cout << "YES";
return 0;
}
请各位大佬救救我吧!