davitory @ 2024-10-07 22:00:08
#include <iostream>
using namespace std;
int main()
{
std::string line;
bool ToF = 0;
int i = 0, j = 0, k = 0, cnt[4],tmp=0;
std::getline(std::cin, line);
for (i = 0; i < line.size(); i)
{
while (j < line.size() && line[j] != ',')
{
++tmp;
j++;
}
if (tmp < 6 || tmp>12)
{
;
}
else
{
//大写字母,小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个
for (k = i; k <= j; k++)//
{
tmp = 0;
if (line[k] >= 'A' && line[k] <= 'Z')
{
cnt[0] = 1;
tmp++;
}
else if (line[k] >= 'a' && line[k] <= 'z')
{
cnt[1] = 1;
tmp++;
}
else if (line[k] >= '0' && line[k] <= '9')
{
cnt[2] = 1;
tmp++;
}
else if (line[k] == '!' || line[k] <= '#' || line[k] <= '@' || line[k] <= '$')
{
cnt[3] = 1;
tmp++;
}
else
{
ToF = 1;
}
}
if ((cnt[0] + cnt[1] + cnt[2] >= 2) && cnt[3] == 1 && ToF == 0)
{
cnt[0] = 0;
cnt[1] = 0;
cnt[2] = 0;
cnt[3] = 0;
for (k = i; k < j; k++)//
{
cout << line[k];
}
cout << endl;
}
ToF = 0;
}
tmp = 0;
i = j+1;
j++;
}
return 0;
}
by tyt_ @ 2024-10-17 19:36:46
哥们,你这个多加个逗号就行了
#include <iostream>
using namespace std;
int main()
{
std::string line;
bool ToF = 0;
int i = 0, j = 0, k = 0, cnt[4],tmp=0;
std::getline(std::cin, line);
line+=',';//多加在这里
for (i = 0; i < line.size(); i)
{
while (j < line.size() && line[j] != ',')
{
++tmp;
j++;
}
if (tmp < 6 || tmp>12)
{
;
}
else
{
//大写字母,小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个
for (k = i; k <= j; k++)//
{
tmp = 0;
if (line[k] >= 'A' && line[k] <= 'Z')
{
cnt[0] = 1;
tmp++;
}
else if (line[k] >= 'a' && line[k] <= 'z')
{
cnt[1] = 1;
tmp++;
}
else if (line[k] >= '0' && line[k] <= '9')
{
cnt[2] = 1;
tmp++;
}
else if (line[k] == '!' || line[k] <= '#' || line[k] <= '@' || line[k] <= '$')
{
cnt[3] = 1;
tmp++;
}
else
{
ToF = 1;
}
}
if ((cnt[0] + cnt[1] + cnt[2] >= 2) && cnt[3] == 1 && ToF == 0)
{
cnt[0] = 0;
cnt[1] = 0;
cnt[2] = 0;
cnt[3] = 0;
for (k = i; k < j; k++)//
{
cout << line[k];
}
cout << endl;
}
ToF = 0;
}
tmp = 0;
i = j+1;
j++;
}
return 0;
}
by tyt_ @ 2024-10-17 19:41:10
@tyt_ 好像不行
by tyt_ @ 2024-10-17 19:43:11
@davitory 实在不行就用我的这个
#include<bits/stdc++.h>
using namespace std;
int main(){
string n,a="";
cin>>n;
n+=',';
int lenn=n.size();
for(int i=0;i<lenn;i++){
if(n[i]!=',') a+=n[i];
else{
int la=a.size();
if(la<=12&&la>=6){
bool zm=0,xx=0,sz=0,zf=0,qt=0;
for(int i=0;i<la;i++){
if(a[i]<='9'&&a[i]>='0') sz=1;
else if(a[i]>='a'&&a[i]<='z') xx=1;
else if(a[i]>='A'&&a[i]<='Z') zm=1;
else if(a[i]=='!'||a[i]=='@'||a[i]=='#'||a[i]=='$') zf=1;
else qt=1;
}
if(zm+xx+sz>=2&&zf==1&&qt==0) cout<<a<<endl;
}
a="";
}
}
return 0;
}