判斷用戶名和密碼是否正確。
超過(guò)10余年行業(yè)經(jīng)驗(yàn),技術(shù)領(lǐng)先,服務(wù)至上的經(jīng)營(yíng)模式,全靠網(wǎng)絡(luò)和口碑獲得客戶,為自己降低成本,也就是為客戶降低成本。到目前業(yè)務(wù)范圍包括了:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作,成都網(wǎng)站推廣,成都網(wǎng)站優(yōu)化,整體網(wǎng)絡(luò)托管,小程序制作,微信開(kāi)發(fā),App定制開(kāi)發(fā),同時(shí)也可以讓客戶的網(wǎng)站和網(wǎng)絡(luò)營(yíng)銷和我們一樣獲得訂單和生意!
#include <stdio.h>
int main(void) {
// 定義變量,用來(lái)表示用戶名和密碼
//char name;
char name[32];
//int password;
char password[16];
// 輸入用戶名和密碼
printf("請(qǐng)輸入用戶名:");
scanf("%s", name);
printf("請(qǐng)輸入密碼:");
scanf("%s", password);
if (strcmp(name, "admin") == 0 &&
strcmp(password, "123456") == 0) {
// 打印功能菜單
printf("---交換機(jī)后臺(tái)管理---\n");
printf("1. 創(chuàng)建賬號(hào)\n");
printf("2. IP管理\n");
printf("3. 退出\n");
} else {
printf("用戶名或密碼錯(cuò)誤!\n");
}
return 0;
}
可參考c/c++手冊(cè)
百度網(wǎng)盤(pán)鏈接:https://pan.baidu.com/s/1dZJLwE
#include <string.h>
int strcmp( const char str1, const char str2 );
比較規(guī)則:
按順先從前往后比較
同序號(hào)的字符按“ASCII”碼值比較
直到遇到對(duì)應(yīng)字符不等或者字符串結(jié)束
返回值:
str1 < str2時(shí), 返回值< 0(有些編譯器返回 -1)
str1 > str2時(shí), 返回值> 0(有些編譯器返回 1)
str1 等于 str2時(shí), 返回值== 0
demo
#include <stdio.h>
int main(void) {
char name[32];
int ret;
printf("請(qǐng)輸入您的姓名:");
scanf("%s", name);
ret = strcmp(name, "Rock");
printf("ret=%d\n", ret);
return 0;
}
#include <string.h>
int strncmp( const char str1, const char str2, size_t count );
最多比較字符串str1和str2的前count個(gè)字符。
demo
#include <stdio.h>
#include <string.h>
int main(void) {
char name1[32] = "Rock";
char name2[32];
int ret;
fgets(name2, sizeof(name2), stdin); //輸入Rock
ret = strcmp(name1, name2);
printf("ret=%d\n", ret);
//
ret = strncmp(name1, name2, strlen(name1));
printf("ret=%d\n", ret);
return 0;
}
### 2.其他數(shù)據(jù)類型的比較運(yùn)算
char, int, float, double數(shù)據(jù)的比較都使用:
大于: >
大于或等于: >=
小于: <
小于或等于: <=
不等于: !=
等于: == (注意:不是 = )
比較運(yùn)算的結(jié)果:(邏輯值)
結(jié)果為“真”: 1
結(jié)果為“假”: 0
#include <stdio.h>
int main(void) {
int a = 100;
int b = 200;
int ret;
ret = a > b;
printf("ret=%d\n", ret); //ret=0
ret = a < b;
printf("ret=%d\n", ret); //ret=1
return 0;
}
比較運(yùn)算的使用場(chǎng)合:
用于“條件判斷”
使用0和1表示邏輯值
dome
#include <stdio.h>
int main(void) {
int a = 100;
int b = 200;
int ret; //或者 char ret;
ret = a > b;
if (ret) {
printf("a > b\n");
} else {
printf("a <= b\n");
}
return 0;
}
使用bool類型表示邏輯類型
使用 true 表示真
使用 false表示假
注意:需要包含頭文件 stdbool.h
#include <stdio.h>
#include <stdbool.h>
int main(void) {
int a = 100;
int b = 200;
//int ret;
bool ret;
ret = a > b;
if (ret) { //即: if (ret == true)
printf("a > b\n");
} else {
printf("a <= b\n");
}
//true和false是"bool類型的常量"
printf("true=%d\n", true);
printf("false=%d\n", false);
return 0;
}
注意:大部分C項(xiàng)目使用的是C89標(biāo)準(zhǔn)中的邏輯值表示方式。
邏輯與 &&
都為真,邏輯與才是真
只要有一個(gè)是假, 邏輯與就是假
相當(dāng)于“而且”
應(yīng)用場(chǎng)景:
當(dāng)需要兩個(gè)條件都滿足時(shí),就使用邏輯與
特別注意:
條件1 && 條件2
當(dāng)條件1為真時(shí),才去判斷條件2
當(dāng)條件1為假時(shí),就不再判斷條件2
#include <stdio.h>
int main(void) {
int x = 0;
int a;
printf("請(qǐng)輸入一個(gè)整數(shù):");
scanf("%d", &a);
if ((a > 5) && ((x=100) > 90)) {
printf("OK\n");
}
printf("x=%d\n", x);
return 0;
}
### 邏輯或 ||
都為假,邏輯與才是真
只要有一個(gè)是真, 邏輯與就是真
相當(dāng)于“或者”
應(yīng)用場(chǎng)景:
只需要滿足任意一個(gè)條件時(shí),就使用邏輯或
特別注意:
條件1 || 條件2
當(dāng)條件1為真時(shí),才不再判斷條件2
當(dāng)條件1為假時(shí),才判斷條件2
#include <stdio.h>
int main(void) {
int x = 0;
int a;
printf("請(qǐng)輸入一個(gè)整數(shù):");
scanf("%d", &a);
if ((a > 5) || ((x=100) > 90)) {
printf("OK\n");
}
printf("x=%d\n", x);
return 0;
}
相當(dāng)于“不”
應(yīng)用場(chǎng)景:
當(dāng)需要不滿足某條件時(shí),就使用邏輯或
特別注意:
邏輯非,只對(duì)一個(gè)條件進(jìn)行運(yùn)算!
是一種“單目運(yùn)算符”
#include <stdio.h>
int main(void) {
int age;
printf("請(qǐng)輸入您的年齡: ");
scanf("%d", &age);
//特別注意要使用()
//if ( ! age >= 30) 將導(dǎo)致非預(yù)期結(jié)果, !會(huì)和age結(jié)合
if ( !(age >= 30) ) {
printf("您還不到30\n");
} else {
printf("您已過(guò)而立之年!\n");
}
return 0;
}
算術(shù)運(yùn)算
x = 10; //把x的值設(shè)置為10, 把10寫(xiě)到變量x中。
x = 10 + a;
左邊必須是變量
“優(yōu)先級(jí)”很低,只比 ","(逗號(hào)元素符)高。
x = (3 + 5); //先計(jì)算"+", 再計(jì)算“=”
x += 10; // x = x + 10
x -= 10; // x = x - 10
類的還有: *= , /=, %= 等。
在后續(xù)章節(jié)中學(xué)習(xí)。
自增自減運(yùn)算
注意:
1.只能對(duì)變量做++和--運(yùn)算,不能對(duì)變量和表達(dá)式做++和--運(yùn)算
5++; //ERROR
(3+x)++; //ERRO
2.建議盡量使用前綴自增(自減),以避免錯(cuò)誤。
逗號(hào)運(yùn)算符
優(yōu)先級(jí)最低。
#include <stdio.h>
int main(void) {
int x;
// 先計(jì)算 x = 3+5, 再計(jì)算3*5
x = 3+5, 3*5, 10/5;
printf("x=%d\n", x); //x=8
//取最后一個(gè)表達(dá)式的值,作為整個(gè)“逗號(hào)表達(dá)式”的值
x = (3+5, 3*5, 10/5);
printf("x=%d\n", x); //x=2
return x;
}
條件 ? 表達(dá)式1 :表達(dá)式2
如果條件為真,就取表達(dá)式1作為整個(gè)表達(dá)式的值
如果條件為假,就取表達(dá)式2作為整個(gè)表達(dá)式的值
#include <stdio.h>
int main(void) {
int year;
int holiday;
printf("請(qǐng)輸入您的工作年限: ");
scanf("%d", &year);
holiday = year > 10 ? 20 : 5;
printf("您的年假有%d天\n", holiday);
return 0;
}
類型轉(zhuǎn)換的概念
為什么需要“類型轉(zhuǎn)換”
參與運(yùn)算的兩個(gè)操作數(shù)的數(shù)據(jù)類型,必須相同!
類型轉(zhuǎn)換的類別:
1.隱式類型轉(zhuǎn)換
自動(dòng)完成轉(zhuǎn)換!
1)算數(shù)轉(zhuǎn)換
2)賦值轉(zhuǎn)換
3)輸出轉(zhuǎn)換
算數(shù)轉(zhuǎn)化
(+,-,*,/,%)
char , int, long, long long, float, double
賦值轉(zhuǎn)換
#include <stdio.h>
int main(void) {
int x;
x = 3.14 * 10; // 31.4 轉(zhuǎn)換為int類型,因?yàn)橘x值符號(hào)的左邊變量的類型是int類型
printf("%d\n", x);
return 0;
}
輸出轉(zhuǎn)換
#include <stdio.h>
int main(void) {
printf("%c\n", 255+50); //305 -> 49 ('1');
printf("%d\n", 255+50);
return 0;
}
int類型數(shù)據(jù), 按照%f格式輸出時(shí),將得到錯(cuò)誤的輸出
float(或double) 類型數(shù)據(jù),按照%d格式輸出時(shí),將得到錯(cuò)誤的輸出
強(qiáng)制類型轉(zhuǎn)化
#include <stdio.h>
int main(void) {
int x = 257 + 100;
printf("%d\n", x);
x = (char)257 + 100;
printf("%d\n", x);
return 0;
}
一共有15個(gè)級(jí)別!
不需強(qiáng)制記憶,只需要掌握以下常用的優(yōu)先級(jí):
最高優(yōu)先級(jí):( )和[ ]
倒數(shù)第二低優(yōu)先級(jí):賦值和復(fù)合賦值(=, +=, -= ...)
最低優(yōu)先級(jí):逗號(hào)表達(dá)式
! > 算術(shù)運(yùn)算符 > 關(guān)系運(yùn)算符 > && > || > 賦值運(yùn)算符
x = ! 3 + 4 < 5 && 6 > 7 || 8 > 7;
等效于:
x = ((!3 + 4 < 5) && (6 > 7)) || (8 > 7);
demo1
``
#include <stdio.h>
int main(void) {
int salary;
printf("請(qǐng)輸入你的期望年薪:");
scanf("%d", &salary);
if (salary >= 200000) {
printf("你需要精通C/C++開(kāi)發(fā)\n");
}
printf("OK\n");
return 0;
}
**demo2**
#include <stdio.h>
int main(void) {
char answer[16];
printf("你有房嗎? ");
scanf("%s", answer);
if (strcmp(answer, "yes") == 0) {
printf("OK");
} else {
printf("你是一個(gè)好人!\n");
}
return 0;
}
**demo3**
#include <stdio.h>
int main(void) {
char answer[16];
printf("有房嗎? ");
scanf("%s", answer);
if (strcmp(answer, "yes") == 0) {
printf("有房,不錯(cuò)\n");
} else if (printf("有車嗎? ") &&
scanf("%s", answer) &&
strcmp(answer, "yes")==0) {
printf("有車,還行\(zhòng)n");
} else if (printf("有病嗎? ") &&
scanf("%s", answer) &&
strcmp(answer, "no")==0) {
printf("健康就好!\n");
} else {
printf("你是一個(gè)好人!\n");
}
return 0;
}
流程圖


**項(xiàng)目練習(xí)**
1.獨(dú)立實(shí)現(xiàn)該項(xiàng)目。
2.讓用戶輸入一個(gè)成績(jī),然后輸出這個(gè)成績(jī)的等級(jí)。
0-59: 不及格
60-79: 及格
80-89: 良好
90-100: 優(yōu)秀
其它:非法成績(jī)
名稱欄目:[小白到大牛之路5]交換機(jī)后臺(tái)管理之權(quán)限判斷
網(wǎng)頁(yè)路徑:http://jinyejixie.com/article0/gdjpoo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、網(wǎng)站建設(shè)、外貿(mào)建站、網(wǎng)頁(yè)設(shè)計(jì)公司、品牌網(wǎng)站制作、網(wǎng)站排名
聲明:本網(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)