永发信息网

用c语言编写一个注册与登录程序

答案:2  悬赏:70  手机版
解决时间 2021-01-31 01:38
要用数组写,并且将注册的信息保存在一个指定的txt文件中,当要用户名重复时要提示错误!要简单易懂
最佳答案
我这有一个,学要的话我可以发给你哦!
全部回答
希望对你有所帮助 #include #include #include #include #define n 100 struct user { int user_id; char user_name[19];//最大18位 char password[13];//最大13位 char like[255]; char sign[255]; }; int length_user_name(char *p) { int l; l=strlen(p); if(l>18||l<1) { return 0; } else return l; } int valid_user_name(char *p) { int i=0; int len = strlen(p); if((*p >= 'a' && *p <= 'z') || (*p >= 'a' && *p <='z')) //判断首字符是不是字母 { for(i = 0; i < len; i++) { if(!(p[i] == '_' || (p[i] >= 'a' && p[i] <= 'z') || (p[i] >= 'a' && p[i] <='z') ||(p[i] >='0' && p[i] <= '9'))) //判断后面字符是否有效 return 0; } return 1; } else return 0; } int is_username_valid(char *p) { if((*p >= 'a' && *p <= 'z') || (*p >= 'a' && *p <='z')) { p++; while(*p) { if(!(isalpha(*p) || *p == '_' || isdigit(*p))) return 0; p++; } return 1; } else { return 0; } } int length_password(char *p) { int len; len = strlen(p); if(len<6||len>12) { return 0; } else return len; } int is_password_valid(char *p) { int i=0; for(;*p != '\0'; p++) { if(!( (*p >= 'a' && *p <= 'z') || (*p >= 'a' && *p <='z') ||(*p >='0' && *p <= '9'))) //判断字符是否有效 return 0; } return 1; } int two_password_valid(char *p1,char*p2) { if(strcmp(p1,p2)==0) return 1; else return 0; } int user_register(struct user *ptr_user,int size) { char password[13]; char repassword[13]; if(size==n) { puts("注册人数以满!"); return 0; } printf("请输入注册姓名:"); fflush(stdin); gets(ptr_user[size].user_name); if(!(length_user_name(ptr_user[size].user_name)&&valid_user_name(ptr_user[size].user_name))) { printf("您输入的姓名无效,用户名在1-18之间,首字符为字母,后面必须为字母,数字或下划线!!!"); return 0; } printf("请输入注册密码:"); fflush(stdin); gets(password); printf("请再次输入注册密码:"); fflush(stdin); gets(repassword); if(!two_password_valid(password,repassword)) { printf("\n两次输入的密码不一致!"); return 0; } else { strcpy(ptr_user[size].password,password); } if(!(length_password(ptr_user[size].password)&&is_password_valid(ptr_user[size].password))) { printf("您输入的密码无效,密码应在6-12之间,密码只能包含字母和数字!!!"); return 0; } printf("请输入您的爱好:"); fflush(stdin); gets(ptr_user[size].like); printf("请输入您的个性签名:"); fflush(stdin); gets(ptr_user[size].sign); printf("您的编号为:%d,这将是您的登陆帐号.",ptr_user[size].user_id=10000+size); return 1; } int is_my_user(struct user *p,int size) { int i; int zhanghu; char mima[15]; printf("请输入您的帐号: "); scanf("%d",&zhanghu); fflush(stdin); printf("请输入您的密码: "); gets(mima); for(i=0;i
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯