随机密码生成

#include<bits/stdc++.h>
using namespace std;
int main(){
	srand(time(0));
	int a=12,c=0;
	char b;
	string n="";
	while(!c){
		b=rand()%93+33;
		c=isupper(b);
	}
	n+=b;
	c=0;
	while(!c){
		b=rand()%93+33;
		c=islower(b);
	}
	n+=b;
	c=0;
	while(!c){
		b=rand()%93+33;
		c=isdigit(b);
	}
	n+=b;
	c=1;
	while(c){
		b=rand()%93+33;
		c=isalnum(b);
	}
	c=a-3;
	while(c){
		b=rand()%93+33;
		n+=b;
		c--;
	}
	cout<<n<<endl;
	char da[100],xi[100],num[100],el[100];
	int d=0,x=0,nu=0,e=0;
	for(int i=0;i<a;i++){
		if(isupper(n[i])){
			da[d]=n[i];
			d++;
		}
		if(islower(n[i])){
			xi[x]=n[i];
			x++;
		}
		if(isdigit(n[i])){
			num[nu]=n[i];
			nu++;
		}
		if(!isalnum(n[i])){
			el[e]=n[i];
			e++;
		}
	}
	sort(da,da+d);
	sort(xi,xi+x);
	sort(num,num+nu);
	sort(el,el+e);
	for(int i=0;i<d;i++){
		cout<<da[i];
	}
	cout<<" "<<d<<endl;
	for(int i=0;i<x;i++){
		cout<<xi[i];
	}
	cout<<" "<<x<<endl;
	for(int i=0;i<nu;i++){
		cout<<num[i];
	}
	cout<<" "<<nu<<endl;
	for(int i=0;i<e;i++){
		cout<<el[i];
	}
	cout<<" "<<e<<endl;
	return 0;
}

  

posted @ 2025-06-06 20:35  陈若麟  阅读(10)  评论(0)    收藏  举报