(七十一)關係表示式

2021-09-23 23:31:39 字數 1568 閱讀 3535

關係表示式的重點是關係運算子,有以下幾個。

關係運算子

意義大於,即前者大於後者(以下略)

小於等於,「=」的意思是賦值

不等於大於等於

小於等於

優先順序:

關係運算子的優先順序,比 運算子 的優先順序低。

例如: a+1 > b; 先進行計算的是a+1,然後判斷a+1>b是真還是假

c-風格字串的表示式判斷:

當我們判斷乙個變數是否等於1時,我們可以用 a==1;來進行判斷,假如等於,返回true,假如不等於,返回false。

但是在c-風格字串中,是不能這麼做的。

原因在於,字串的變數名,實際上是字串的記憶體位址。

假如乙個指標指向這個字串記憶體位址,那麼這個指標可以和這個字串的變數名相等。

但是若兩個字串之間進行判斷,那麼就不用用「==」來進行判斷了。

應使用函式strcmp(

字串1,字串2

)來進行判斷,

假如相同,則返回值為0,

假如不等,則返回值為1.

注意,這個函式內的字串1和字串2,實際上是記憶體位址。即,這個函式通過記憶體位址來判斷記憶體位址的值是否相等。

上**:

#includeint main()

system("pause");

return 0;

}

輸出:

aello

bello

cello

dello

eello

fello

gello

hello

請按任意鍵繼續. . .

總結:①可以這麼理解:

strcmp(字串1,字串2)根據記憶體位址,判斷字串是否不同。

是不同,返回true——即1

是相同,返回false——即0

是不同,則繼續執行迴圈語句

是相同,則不執行迴圈語句。

——不這樣理解好彆扭,這樣理解也好彆扭。

②按照說明,strcmp需要標頭檔案

,但實際中,我沒引用也可以正常使用啊?

③變種:

strcmp(字串1,字串2)==0;

這個表示式的意思就是,判斷字串是否相同:

相同,前面部分為0,表示式為1——繼續執行迴圈語句

不同,前面部分為1,表示式為0——停止執行迴圈

和不帶==0的剛好相反。

不帶「==0」的,相同,停止執行。——用於需要相同字串時

帶「==0」的,相同,繼續執行。——用於需要不同字串時

string類字串判斷:

和c-風格字串判斷相比,要簡單的多,可以直接用「==」或者「!=」關係判斷符來判斷兩個string類字串是否相同。

例如:for (int i = 1;aa!=bb;i++)

只需要將前面的**strcmp(aa,bb)改為aa!=bb;即可。

因為滿足不等於,則執行迴圈,滿足等於,則不執行迴圈。

迴圈和關係表示式

一 for迴圈 1.在引入bool型別之前,關係表示式為ture 被判定為1 如果為false,被判定為0。2.函式cout.setf 設定了乙個標記。該標記命令cout顯示ture和false,而不是1和0。函式引數為cout.setf ios base boolalpha 但在老式c 可能要求使...

正規表示式規則(十一)

如果要要求表示式所匹配的內容是整個字串,而不是從字串中找一部分,那麼可以在表示式的首尾使用 和 比如 d 要求整個字串只有數字。4.3 如果要求匹配的內容是乙個完整的單詞,而不會是單詞的一部分,那麼在表示式首尾使用 b 比如 if while else void int b 來匹配程式中的關鍵字。4...

表示式 表示式樹 表示式求值

總時間限制 1000ms 記憶體限制 65535kb 描述 眾所周知,任何乙個表示式,都可以用一棵表示式樹來表示。例如,表示式a b c,可以表示為如下的表示式樹 a b c 現在,給你乙個中綴表示式,這個中綴表示式用變數來表示 不含數字 請你將這個中綴表示式用表示式二叉樹的形式輸出出來。輸入輸入分...