题目
编写一个检验密码的程序。要求用户从键盘上输入密码(用户的帐户密码可自己设定,位数为6位数,比如“123456”),
如果正确,则显示信息:Welcome!如果输入错误,则显示:Wrong!Try again!控制循环次数,最多三次机会,
超过3次报错,给出提示:Good bye!
源代码
#include<stdio.h>
#include<string.h>
int main()
{
/*
编写一个检验密码的程序。要求用户从键盘上输入密码(用户的帐户密码可自己设定,位数为6位数,比如“123456”),
如果正确,则显示信息:Welcome!如果输入错误,则显示:Wrong!Try again!控制循环次数,最多三次机会,
超过3次报错,给出提示:Good bye!
实验步骤及提示:
(1)、定义字符数组,用于存放用户从键盘上输入的密码。一个字符串常量作为用户帐户密码。
(2)、可以使用strcmp函数进行比较,格式是: strcmp(str1,str2)
str1与str2相等时,值为0,不相等,值为非0.可以使用if()进行比较。
(3)、使用循环语句实现三次机会的控制,每次的控制情况如题目给出所示。
*/
char a[7];
char b[8];
int j = 0;
int i = 3;
printf("请输入你要设置的密码:\n");
gets(a);
while (j < 3)
{
printf("请你输入密码:\n");
gets(b);
if (strncmp(a, b,7) == 0) {
printf("Welcome!\n");
break;
}
j++;
if ((i - j) == 0)
{
printf("Good bye");
return 0;
}
if(strncmp(a, b, 7) !=0)
{
printf("Wrong!Try again!\n");
printf("你还有%d次机会,请你再次输入密码:\n", i-j);
}
}
return 0;
}
运行结果图
学到知识点
学会使用strcmp
strcmp函数
函数原型:extern int strcmp(const char *s1,const char *s2);
函数功能:以ascii码值比较两个字符串的大小,当s1<s2时,返回为负数,当s1=s2时,返回值= 0,当s1>s2时,返回正数。
头文件:#include <string.h>
参数说明:两个比较字符串的首地址指针。
注意事项:strcmp(const char *s1,const char * s2)这里面只能比较字符串,即可用于比较两个字符串常量,或比较数组和字符串常量,不能比较数字等其他形式的参数。