代码传不上去

B3843 [GESP202306 三级] 密码合规

wky_wsy @ 2024-07-15 17:13:28

写了半天代码传不上去 。。
有没有大神帮忙看看哪里出了问题

#include <bits/stdc++.h>
using namespace std;
int main(){
    char Z[101],l[13];
    int d=0,x=0,s=0,t=0,ll=0,c=1;
    scanf("%s",Z);
    int l=strlen(Z);
    for(int i=0;i<l;i++){
        if(Z[i]==',') l=strtok(ll,i-1);
        int l1=strlen(ll);
        for(int j=0;j<l1;j++){
            if(l1<6||l1>12){
                c=0;
                break;
            }
            if(l[j]>='a'&&l[j]<='z') x=1;
            else if(l[j]>='A'&&l[j]<='Z') d=1;
            else if(l[j]>='0'&&l[j]<='9') s=1;
            else if(l[j]=='!'||l[j]=='@'||l[j]=='#'||l[j]=='$') t=1;

        }
        if(d+x+s>=2&&t>0) printf("%s\n",l);
        d=0;
        x=0;
        s=0;
        t=0;
    }
    return 0;
}

by All_Wrong_Answer @ 2024-07-15 17:16:41

@wky_wsy

变量和数组重名了,有两个l


by wky_wsy @ 2024-07-15 17:16:57

现在好像是编译错误

#include <bits/stdc++.h>
using namespace std;
int main(){
    char Z[101],l[13];
    int d=0,x=0,s=0,t=0,ll=0,c=1;
    scanf("%s",Z);
    int l=strlen(Z);
    for(int i=0;i<l;i++){
        if(Z[i]==',') l=strtok(ll,',');
        int l1=strlen(ll);
        for(int j=0;j<l1;j++){
            if(l1<6||l1>12){
                c=0;
                break;
            }
            if(l[j]>='a'&&l[j]<='z') x=1;
            else if(l[j]>='A'&&l[j]<='Z') d=1;
            else if(l[j]>='0'&&l[j]<='9') s=1;
            else if(l[j]=='!'||l[j]=='@'||l[j]=='#'||l[j]=='$') t=1;

        }
        if(d+x+s>=2&&t>0) printf("%s\n",l);
        d=0;
        x=0;
        s=0;
        t=0;
    }
    return 0;
}

by _czx6666_ @ 2024-07-15 17:23:57

if(Z[i]==',') l=strtok(ll,',');

这是什么?这里出错。 我修改后

#include <bits/stdc++.h>
using namespace std;
int main(){
    string Z,l;
    int d=0,x=0,s=0,t=0,ll=0,c=1;
    cin>>Z;
    int le=Z.size();
    for(int i=0;i<le;i++){
        if(Z[i]==',') l=strtok(ll,',');
        int l1=l.size();
        for(int j=0;j<l1;j++){
            if(l1<6||l1>12){
                c=0;
                break;
            }
            if(l[j]>='a'&&l[j]<='z') x=1;
            else if(l[j]>='A'&&l[j]<='Z') d=1;
            else if(l[j]>='0'&&l[j]<='9') s=1;
            else if(l[j]=='!'||l[j]=='@'||l[j]=='#'||l[j]=='$') t=1;

        }
        if(d+x+s>=2&&t>0) cout<<l<<endl;
        d=0;
        x=0;
        s=0;
        t=0;
    }
    return 0;
}

by _czx6666_ @ 2024-07-15 17:24:42

@wky_wsy


by wky_wsy @ 2024-07-15 20:22:52

@czx6666
还是编译错误。


|