验证码-C

      • main.c 文件
      • randomcode_send.c文件

涉及知识点:用到了extern(全局变量)、自定义函数。
(另打印验证码也可以使用指针打印)

main.c 文件

/*根据系统给出的随机6位验证码输入正确的验证码,3次错误即锁定退出*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

extern char codesave[6];
randomcode(void);

int main()
{
    //char *ptr_code=&codesave;
    int i;
    char ucode[6];//用户验证码
    int n=3;//输入次数
    int flag=0;

    /*printf("\n系统输出的验证码是:");//另一种呈现验证码的打印方式
    for(i=0;i<6;i++)
    {
        printf("%c",*(ptr_code++));
    }
    */
    while(n)
    {
        randomcode();
        printf("\n请输入验证码:(目前第%d次机会)",n);
        scanf("%s",&ucode);

        if(strcmp(ucode,codesave)==0)
        {
        printf("输入正确!进入系统!\n");
        flag=1;
        break;
        }
        else
        {
        printf("输入错误,请重新输入!\n");
        }
        n--;
    }
    if(flag==0)
    {
       printf("账户锁定!\n");
    }
    return 0;
}

randomcode_send.c文件

#include <stdio.h>
#include <time.h>
#include <strings.h>

char codesave[6];
randomcode(void)
{
    int i;//循环次数
    int k;//随机元素下标
    int lc;//codes长度

    char codes[]="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    lc=strlen(codes);

    srand((unsigned)time(NULL));
    for(i=0;i<6;i++)
    {
        k=rand()%lc;//生成0到(长度-1)个数
        codesave[i]=codes[k];

    }
    printf("系统输出的验证码是:");
    for(i=0;i<6;i++)
    {
        printf("%c",codesave[i]);
    }
}

更多推荐

C语言自学路之验证码