易百教程

比较文本以验证密码是否正确

在C语言中可使用strcmp()函数及其相关函数:strncmp(),strcasecmp()和strncasecmp()来比较字符串。

字符串比较函数根据比较结果返回一个int值:

  • 返回0表示字符串相等时
  • 根据第一个字符串的值是大于还是小于第二个字符串返回int值。

大多数时候,只需要检查返回的是否为0值。

下面的代码使用strcmp()函数将初始化的字符串密码与读取用户输入的文本进行比较,该文本存储在输入数组中。

该操作的结果存储在匹配变量中,该变量用于if-else决策以显示结果。

#include <stdio.h> 
#include <string.h> 

int main()
{ 
      char password[]="12345"; 
      char input[15]; 
      int match; 

      printf("输入密码: "); 
      scanf("%s",input); 

      match=strcmp(input,password); 
      if(match==0) 
          puts("密码正确,程序继续~"); 
      else 
          puts("无效的密码,程序退出。"); 

      return(0); 
}

执行上面示例代码,得到以下结果:

hema@yiibai:~/book$ gcc main.c
hema@yiibai:~/book$ ./a.out
输入密码: 123123
无效的密码,程序退出。
hema@yiibai:~/book$ ./a.out
输入密码: 12345
密码正确,程序继续~
hema@yiibai:~/book$