c语言输入六位数密码,七位也能输入打印,这是为什么

Python019

c语言输入六位数密码,七位也能输入打印,这是为什么,第1张

c语言输入六位数密码,七位也能输入打印,这是因为第七位是没有办法显示的。

这里使用一个简单的账号密码输入并打印的程序来分析。输入 #include<stdio.h>intmain(){ char account[20] = {0 }int password[20] = {0 }printf("请输入账号:")

因为你不清空数组,input超过密码长度的值还保留在数组里面。给你详细举例,

当你输入超过密码长度hehe1234,你的input里面的数据就是{h,e,h,e,1,2,3,4...}这时候你再输入正确密码hehe123,前面的都被覆盖,但是4还保留在数组里面,你的input其实还是hehe1234,所以你不可能再得到正确密码。

1 以字符串方式,读入用户名和密码;

2 通过strcmp函数,判断是否相同。如相同,则合法。

3 给出提示信息。

说明:strcmp原型为

int strcmp(char *a, char *b)

功能为比较a和b两个字符串,如果相同返回0;如果a大返回1;如果b大返回-1。

大小依照ascii比较。

参考代码如下:

#include <stdio.h>#include <string.h>int main(){char a[100],b[100] scanf("%s%s",a,b) if(strcmp(a,"abc") == 0 &&strcmp(b, "123456") == 0) printf("用户合法\n") else printf("用户非法\n")}