重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
#include stdio.h
成都创新互联公司专业为企业提供蒙城网站建设、蒙城做网站、蒙城网站设计、蒙城网站制作等企业网站建设、网页设计与制作、蒙城企业网站模板建站服务,十年蒙城做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
#define UC (1U1) // upper case
#define LC (1U2) // lower case
#define NUM (1U3) // 0-9
#define ALL (UC|LC|NUM)
int check(const char pass1[], const char pass2[])
{
const char *p = pass1[0];
unsigned int flag = 0;
if (strlen(pass1) 6 || strlen(pass1) 8)
{
printf("password length is 6 to 8.\n");
return 1;
}
if (strcmp(pass1, pass2))
{
printf("the tow passwords are diffrence.\n");
return 2;
}
while (*p)
{
if (*p = 'a' *p = 'z') flag |= LC;
else if (*p = 'A' *p = 'Z') flag |= UC;
else if (*p = '0' *p = '9') flag |= NUM;
else
{
printf("in valid charactor: %c.\n", *p);
return 3;
}
++p;
}
if (flag == ALL) return 0;
if ((flag UC) == 0)
{
printf("lack of uppercase.\n");
}
if ((flag LC) == 0)
{
printf("lack of lowercase.\n");
}
if ((flag NUM) == 0)
{
printf("lack of number.\n");
}
return -1;
}
int main(int argc, char *argv[])
{
char pass1[100];
char pass2[100];
do {
printf("input password:");
scanf("%s", pass1);
printf("repeat password:");
scanf("%s", pass2);
} while (check(pass1, pass2) != 0);
return 0;
}
#include stdio.h
#include string.h
typedef struct
{
long number; //用户编号 6位
char name[20]; //用户名
char password[8]; //用户密码
int power; //权限判断 1 为管理员2为普通用户
} user;
user yh[100]={100000,"gavin","gavine",1,100001,"wnag","wangf",2};
int length = 2;
int checkuser(long num, const char *nm, const char *pwd)
{
int i;
for (i = 0; i length; ++i)
{
if (yh[i].number == num !strcmp(yh[i].name, nm) !strcmp(yh[i].password, pwd))
{
if (1==yh[i].power)
return 1;
else
return 2;
}
}
}
void main()
{
printf("%d\n", checkuser(100000, "gavin", "gavine"));
}
给你个参考:
#includestdio.h
#includeconio.h //用getch()函数时要的文件头
#includestring.h
#define USER "admin"
#define PWD "admin"
void main()
{
char user[20], pwd[16], ch;
int count=0, i=0;
while(count3) //3次机会输入正确密码
{
printf("user name:");
gets(user);
printf("password:");
while((ch=getch())!=13i16) //将输入的密码转换成字符****
{
putchar('*');
pwd[i]=ch;
i++;
}
pwd[i]=0;
if(!strcmp(USER,user)!strcmp(PWD,pwd))
break;
else
printf("\nincorrect user name or password!\n");
count++;
}
printf("\nlogin successful!\n");
}
conio.h不是c标准头文件,建议不要用这个头文件。把这个头文件删掉。
将读入密码那行的函数改用gets
gets(input_pass);
另外为了避免bug,input_pass最好弄大一点。
C语言特点
基本特性
C++语言代码
1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。 [10]
2、结构式语言:结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 [10]
4、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。 [10]
5、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。 [11]
特有特点
C语言是一个有结构化程序设计、具有变量作用域(variable scope)以及递归功能的过程式语言。
C语言传递参数均是以值传递(pass by value),另外也可以传递指针(a pointer passed by value)。
不同的变量类型可以用结构体(struct)组合在一起。
只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。
部份的变量类型可以转换,例如整型和字符型变量。
通过指针(pointer),C语言可以容易的对存储器进行低级控制。
预编译处理(preprocessor)让C语言的编译更具有弹性。