登录操作
今天在学习中有涉足到一个新的函数可以用它完成一些程序例如登录操作
#include <stdio.h>
#include <string.h>
int main()
{
int i = 0;
char password[20] = {0}; // 定义一个存储密码输入的地方
for (i = 0; i < 3; i++)
{
printf("请输入密码>:");
scanf("%s", password);
if (strcmp(password, "1234567") == 0) // 使用比较函数strcmp来判断两个数是否议一致 如果一致执行以下代码
{
printf("登录成功\n"); // 提示登陆成功
break; // 跳出循环
}
else
{
printf("密码错误,请重试\n"); // 提示密码错误 请用户重试
}
}
if (i == 3)
{
printf("您已被锁定,请稍后重试"); // 提示用户被锁定请用户稍后重试
}
return 0;
}
代码原理
初始化:i
用于计数用户尝试输入密码的次数,password
用于存储用户输入的密码。
循环:for
循环允许用户最多尝试 3 次输入密码。
密码验证:使用 strcmp
函数比较用户输入的密码与预设的密码 "1234567"
,如果两者相等,表示密码正确,程序输出“登录成功”并跳出循环。
错误提示:如果输入的密码不正确,程序输出“密码错误,请重试”,并继续下一次循环。
锁定提示:如果 3 次输入均失败,程序输出“您已被锁定,请稍后重试”,表示用户的账号被暂时锁定。
总结
strcmp的学习
通过课后学习了解到strcmp一些应用场景以及注意事项
场景
排序:strcmp
常用于字符串排序算法中,例如字典顺序排序。
查找:在字符串数组中查找特定的字符串时,可以使用 strcmp
进行匹配。
验证:在用户输入验证、密码比较等场景中,经常使用 strcmp
来确定输入的正确性。
注意事项
区分大小写:strcmp
是区分大小写的比较函数。对于不区分大小写的比较,可以使用 strcasecmp
(在 POSIX 系统中可用)或手动将字符串转换为小写后再比较。
返回值的正确使用:使用 strcmp
比较时,正确处理其返回值非常重要。不要直接与 1
或 -1
比较,而是与 0
比较或判断正负。
空字符串:strcmp
可以比较空字符串。如果两个字符串都是空字符串,则返回 0
。如果一个字符串为空,另一个非空,则返回相应的负值或正值。