conio.h不是c標(biāo)準(zhǔn)頭文件,建議不要用這個(gè)頭文件。把這個(gè)頭文件刪掉。
創(chuàng)新互聯(lián)自成立以來(lái),一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開(kāi)發(fā)等基于互聯(lián)網(wǎng)的全面整合營(yíng)銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開(kāi)發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開(kāi)發(fā)工程師團(tuán)隊(duì)及專業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。
將讀入密碼那行的函數(shù)改用gets
gets(input_pass);
另外為了避免bug,input_pass最好弄大一點(diǎn)。
C語(yǔ)言特點(diǎn)
基本特性
C++語(yǔ)言代碼
1、高級(jí)語(yǔ)言:它是把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)的工作單元。?[10]
2、結(jié)構(gòu)式語(yǔ)言:結(jié)構(gòu)式語(yǔ)言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分隔化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦阌谑褂谩⒕S護(hù)以及調(diào)試。C 語(yǔ)言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語(yǔ)句控制程序流向,從而使程序完全結(jié)構(gòu)化。?[10]
4、代碼級(jí)別的跨平臺(tái):由于標(biāo)準(zhǔn)的存在,使得幾乎同樣的C代碼可用于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機(jī)型。C語(yǔ)言對(duì)編寫需要進(jìn)行硬件操作的場(chǎng)合,優(yōu)于其它高級(jí)語(yǔ)言。?[10]
5、使用指針:可以直接進(jìn)行靠近硬件的操作,但是C的指針操作不做保護(hù),也給它帶來(lái)了很多不安全的因素。C++在這方面做了改進(jìn),在保留了指針操作的同時(shí)又增強(qiáng)了安全性,受到了一些用戶的支持,但是,由于這些改進(jìn)增加語(yǔ)言的復(fù)雜度,也為另一部分所詬病。Java則吸取了C++的教訓(xùn),取消了指針操作,也取消了C++改進(jìn)中一些備受爭(zhēng)議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機(jī)中運(yùn)行,運(yùn)行效率低于C++/C。一般而言,C,C++,java被視為同一系的語(yǔ)言,它們長(zhǎng)期占據(jù)著程序使用榜的前三名。?[11]
特有特點(diǎn)
C語(yǔ)言是一個(gè)有結(jié)構(gòu)化程序設(shè)計(jì)、具有變量作用域(variable scope)以及遞歸功能的過(guò)程式語(yǔ)言。
C語(yǔ)言傳遞參數(shù)均是以值傳遞(pass by value),另外也可以傳遞指針(a pointer passed by value)。
不同的變量類型可以用結(jié)構(gòu)體(struct)組合在一起。
只有32個(gè)保留字(reserved keywords),使變量、函數(shù)命名有更多彈性。
部份的變量類型可以轉(zhuǎn)換,例如整型和字符型變量。
通過(guò)指針(pointer),C語(yǔ)言可以容易的對(duì)存儲(chǔ)器進(jìn)行低級(jí)控制。
預(yù)編譯處理(preprocessor)讓C語(yǔ)言的編譯更具有彈性。
是三種不同的函數(shù)驗(yàn)證登陸吧,check1、check2、check3三類函數(shù)分別如下:
void check1()輸入輸出功能全部在函數(shù)完成;
void check2(name,pass)輸入在main中傳入函數(shù)進(jìn)行判斷輸出;
int check3(name,pass)輸入輸出均在main函數(shù)完成,函數(shù)只做判斷返回結(jié)果。
#include "stdafx.h"
#include iostream
#include string
void check1()
{
char name[10], pass[10];
printf("請(qǐng)輸入賬號(hào)和密碼:\n");
scanf_s("%s%s", name, 10, pass, 10);
if (!strcmp(name,"admin")!strcmp(pass,"123"))
printf("賬號(hào)密碼正確!\n");
else
printf("賬號(hào)或密碼錯(cuò)誤!\n");
}
void check2(char *n, char *p)
{
if (!strcmp(n, "admin") !strcmp(p, "123"))
printf("賬號(hào)密碼正確!\n");
else
printf("賬號(hào)或密碼錯(cuò)誤!\n");
}
int check3(char *n, char *p)
{
if (!strcmp(n, "admin") !strcmp(p, "123"))
return 1;
else
return 2;
}
int main()
{
char name[10], pass[10];
check1();
printf("請(qǐng)輸入賬號(hào)和密碼:\n");
scanf_s("%s%s", name, 10, pass, 10);
check2(name, pass);
printf("請(qǐng)輸入賬號(hào)和密碼:\n");
scanf_s("%s%s", name, 10, pass, 10);
if(check3(name,pass)==1)
printf("賬號(hào)密碼正確!\n");
if(check3(name,pass)==2)
printf("賬號(hào)或密碼錯(cuò)誤!\n");
system("pause");
return 0;
}
#include stdio.h
#define UC (1U1) // upper case
#define LC (1U2) // lower case
#define NUM (1U3) // 0-9
#define ALL (UC|LC|NUM)
int check(const char pass1[], const char pass2[])
{
const char *p = pass1[0];
unsigned int flag = 0;
if (strlen(pass1) 6 || strlen(pass1) 8)
{
printf("password length is 6 to 8.\n");
return 1;
}
if (strcmp(pass1, pass2))
{
printf("the tow passwords are diffrence.\n");
return 2;
}
while (*p)
{
if (*p = 'a' *p = 'z') flag |= LC;
else if (*p = 'A' *p = 'Z') flag |= UC;
else if (*p = '0' *p = '9') flag |= NUM;
else
{
printf("in valid charactor: %c.\n", *p);
return 3;
}
++p;
}
if (flag == ALL) return 0;
if ((flag UC) == 0)
{
printf("lack of uppercase.\n");
}
if ((flag LC) == 0)
{
printf("lack of lowercase.\n");
}
if ((flag NUM) == 0)
{
printf("lack of number.\n");
}
return -1;
}
int main(int argc, char *argv[])
{
char pass1[100];
char pass2[100];
do {
printf("input password:");
scanf("%s", pass1);
printf("repeat password:");
scanf("%s", pass2);
} while (check(pass1, pass2) != 0);
return 0;
}
#include string.h
char user[]="輸入的帳號(hào)", pwd[]="輸入的密碼";
if (strcmp("真實(shí)帳號(hào)", user) == 0 strcmp("對(duì)應(yīng)密碼", pwd) == 0) {
printf("驗(yàn)證成功!");
} else {
printf("帳號(hào)或密碼錯(cuò)誤!");
}
int?password;
scanf("%d\n",password);
if(password==123456){
printf("密碼正確");
}else{
if(password=123456){
printf("小于密碼");
}else{
printf("大于密碼");
}
}
網(wǎng)站題目:檢驗(yàn)密碼c語(yǔ)言函數(shù),密碼驗(yàn)證c語(yǔ)言
文章出自:http://chinadenli.net/article24/dsicoje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、網(wǎng)站導(dǎo)航、虛擬主機(jī)、網(wǎng)站制作、品牌網(wǎng)站建設(shè)、服務(wù)器托管
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)