#include string.h
创新互联建站于2013年开始,先为南浔等服务建站,南浔等地企业,进行企业商务咨询服务。为南浔企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
struct e
{
char a[10];
char b[10];
}z;
int main()
{ int t=0;
char s[10],d[10];
FILE *p;
void as();
if ((p=fopen("m.txt","r+"))==NULL)
{
p=fopen("m.txt","w+");
t=1;
}
if(t==1)
{
printf("当前没有任何用户\n");
printf("请新建用户名: ");
scanf("%s",s);
printf("为用户设置密码: ");
scanf("%s",d);
strcpy(z.a,s);
strcpy(z.b,d);
fprintf(p,"%s %s",z.a,z.b);
fclose(p);
}
if(t==0)
{
printf("请输入用户名: ");
scanf("%s",s);
fscanf(p,"%s %s",z.a,z.b);
fclose(p);
if (!strcmp(z.a,s))
{
printf("请输入密码:");
scanf("%s",d);getchar();
if(!strcmp(z.b,d))
{ char i;
printf("是否要修改密码?(输入y修改,n退出!)");
scanf("%c",i);
if(i=='y')
{
printf("请输入修改密码:");
scanf("%s",z.b);
p=fopen("m.txt","w+");
fprintf(p,"%s %s",z.a,z.b);
fclose(p);
printf("修改成功!");
}
}
else printf("密码错误!");
}
else printf("用户名错误");
fclose(p);
}
}
#include stdio.h
#include string.h
#include ctype.h
int main()
{ char psw[21]="123456",t1[21],t2[21];
int i,n=0;
printf("请输入初始密码:\n");
do
{ gets(t1);
n++;
err=strcmp(t1,psw);
if(err)printf("初始密码错误!请重新输入!\n");
}
while(errn3);
if(strcmp(t1,psw))
{ printf("密码错误,不能登录!\n");
return 0;
}
while(n3)
{ while(n3)
{ printf("请输入新密码:\n");
gets(t1);
for(i=0; t1[i]; i++)
if(isdigit(t1[i]))n++;
if(n3)
{ n=0;
printf("数字必须大于2位!\n");
}
}
printf("请再次输入新密码:\n");
gets(t2);
if(strcmp(t1,t2)==0)
printf("密码修改成功!\n");
else
{ printf("二次密码不一致!\n");
n=0;
}
}
return 0;
}
#include stdlib.h
#include stdio.h
#include string.h
#define N 10000
void function(char message[],char key[],int mode); //加解密函数
int main()
{
int choose;
char m[N],key[N];
printf("维吉尼亚加密,请输入1;解密,请输入2:\n");
scanf("%d",choose);
getchar();
if (choose == 1 || choose == 2)
{
if (choose == 1)
printf("输入明文:\n");
if (choose == 2)
printf("输入密文:\n");
gets(m);
printf("输入密钥:\n");
gets(key);
function(m,key,choose);
}
else
printf("输入错误!\n");
return 0;
}
void function(char message[],char key[],int mode) //加解密函数
{
int i, j = 0; //j控制key的轮回
int len_k = strlen(key); //密钥长度
char s[N];
for(i=0; message[i]!='\0'; i++)
{
if(message[i] == 32) //判断空格
s[i]=' ';
else
{
if (mode == 1)
s[i]=(int(message[i]-'a')+int(key[j%len_k]-'a'))%26+97;
if (mode == 2)
s[i]=(int(message[i]-'a')-int(key[j%len_k]-'a')+26)%26+97;
j++;
}
printf("%c",s[i]);
}
printf("\n");
}
gets(l);//不加这句M就输入不了为什么?
是因为没有这句的话,按的回车键就输成m了。
连用两个输入语句时,需要考虑回车键,就像我代码里的getchar()。
char mycrypt ( char ch, int key )
{
if ( ch = 'Z' ch = 'A' )
{
ch -= 'A';
ch += 26 + key;
ch = ch % 26;
ch += 'A';
}
else if ( ch = 'z' ch = 'a' )
{
ch -= 'a';
ch += 26 + key;
ch = ch % 26;
ch += 'a';
}
return ch;
}
void password(char *pass)
{
scanf("%s",pass);
}
不能在函数的栈变量中修改,就直接以指针/引用方式传参就可以了。
满意请采纳,不满意请追问
#include "stdio.h"
int* set(void);
int* set(void)
{
int i;
static a[4];
printf("请输入要设置的4位密码 :");
for(i=0;i4;i++)
{
scanf("%d",a[i]);
}
return a;
}
int main()
{
int i,*a,b[4];
a=set();
printf("请输入4位密码 :");
for(i=0;i4;i++)
{
scanf("%d",b[i]);
}
i=0;
while(i4)
{
if(a[i]==b[i])
{
printf("%d",a[i]);
i++;
}
else
{
break;
}
}
if(i==4)
{
printf("密码正确\n");
}
else
{
printf("密码错误\n");
}
return 0;
}