用c语言编写一个注册与登录程序
答案:2 悬赏:70 手机版
解决时间 2021-01-31 01:38
- 提问者网友:niaiwoma
- 2021-01-30 20:17
要用数组写,并且将注册的信息保存在一个指定的txt文件中,当要用户名重复时要提示错误!要简单易懂
最佳答案
- 五星知识达人网友:枭雄戏美人
- 2021-01-30 21:33
我这有一个,学要的话我可以发给你哦!
全部回答
- 1楼网友:笑迎怀羞
- 2021-01-30 22:04
希望对你有所帮助
#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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯