c语言 修改密码初始密码为123456,密码包含数字和字母,数字必须大于2位

如题所述

#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{ char psw[21]="123456",t1[21],t2[21];
  int i,n=0;
  printf("请输入初始密码:\n");
  do
  { gets(t1);
    n++;
    err=strcmp(t1,psw);
    if(err)printf("初始密码错误!请重新输入!\n");
  }
  while(err&&n<3);
  if(strcmp(t1,psw))
  { printf("密码错误,不能登录!\n");
    return 0;
  }
  while(n<3)
  { while(n<3)
    { printf("请输入新密码:\n");
      gets(t1);
      for(i=0; t1[i]; i++)
        if(isdigit(t1[i]))n++;
      if(n<3)
      { n=0;
        printf("数字必须大于2位!\n");
      }
    }
    printf("请再次输入新密码:\n");
    gets(t2);
    if(strcmp(t1,t2)==0)
      printf("密码修改成功!\n");
    else
    { printf("二次密码不一致!\n");
      n=0;
    }
  }
  return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-05-28

#include <>

int main(int argc, char *argv[])
{
    char password[32] = "123456";
    int i = 0, num = 0;
    
    printf("初始密码为:%s\n", password);
    printf("输入你的新密码:\n");
    scanf("%s", password);
    
    while('\0' != password[i])
    {
        if (password[i] >= '0' && password[i] <= '9')
        {
            num++;
        }
        else
        {
            if (num > 0 && num <= 2)
            {
                printf("数字必须大于2位\n");
                return 0;
            }
            num = 0;
        }
        
        i++;
    }
    
    if (num > 0 && num <= 2)
    {
        printf("数字必须大于2位\n");
        return 0;
    }
    
    printf("修改成功!新密码为:%s\n", password);
    
    return 0;
}

本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网