cjhhh @ 2024-08-08 23:20:46
#include<iostream>
using namespace std;
string s,l[20];
bool ri=1;
int w=0;
int main(){
cin>>s;
int last=0;
for(int i=0;i<s.size();i++){
if(s[i]==','||i==s.size()-1){
int ww=0;
for(int j=last;j<i;j++){
l[w]=l[w]+s[j];
}
w++;
last=i+1;
}
}
bool pd[4];
for(int i=0;i<=w;i++){
if(l[i].length()>12||l[i].length()<6){
ri=0;
}else{
for(int j=0;j<l[i].size();j++){
if(l[i][j]>='a'&&l[i][j]<='z'){
pd[0]=true;
}else if(l[i][j]>='A'&&l[i][j]<='Z'){
pd[1]=true;
}else if(l[i][j]>='0'&&l[i][j]<='9'){
pd[2]=true;
}else if(l[i][j]=='!'||l[i][j]=='@'||l[i][j]=='#'||l[i][j]=='$'){
pd[3]=true;
}else{
ri=0;
}
}
if(ri!=0){
int jss=0;
for(int j=0;j<3;j++){
if(pd[j]==1){
jss++;
}
}
if(jss<2||pd[3]!=1){
ri=0;
}
}
}
if(ri==1){
cout<<l[i]<<endl;
}
ri=1;
}
return 0;
}
by LHW_Cosset_Idiot @ 2024-08-11 08:12:01
@cjhhh 基本思路没问题\ 看下数组数组是不是没有初始化或者还原。\ 可以看下这个的思路。
#include<bits/stdc++.h>
using namespace std;
string s;
char a[901];
int j=1,es,el,sz,xc;
int main()
{
cin>>s;
for(int i=0; i<s.size(); i++){
if(s[i]!=','){
a[j] = s[i];
j++;
if(s[i] >= 'a' && s[i] <= 'z'){
es++;
}
if(s[i] >= 'A' && s[i] <= 'Z'){
el++;
}
if(s[i] >= '0' && s[i] <= '9'){
sz++;
}
if(s[i] == '!' || s[i] == '@' || s[i] == '#' || s[i] == '$'){
xc++;
}
}
if(s[i] == ','){
if(j>=7 && j<=13 && (es!=0 && el!=0 || es!=0 && sz!= 0 || el !=0 && sz!=0) && xc>=1 && es+el+sz+xc==j-1) {
for(int k=1; k<j; k++){
cout<<a[k];
}
cout<<endl;
}
j=1;
es=0;
el=0;
sz=0;
xc=0;
memset(a,0,sizeof(a));
}
}
return 0;
}
by cjhhh @ 2024-08-13 12:30:26
@lihanwen2024 好的,谢谢
by LHW_Cosset_Idiot @ 2024-08-13 14:22:15
@cjhhh 求关