C語言字串比較是否可以直接用關係運算子

2022-02-21 09:32:46 字數 3152 閱讀 9600

1樓:小夏在深圳

不可以用關係運算子對字元陣列中的字串進行比較。可以用關係運算子對字元進行操作,卻不能對字串進行操作。

在c語言中有以下關係運算子:

1、 < 小於

2、 <= 小於或等於

3、 > 大於

4、 >= 大於或等於

5、 == 等於

6、 != 不等於

關係運算子都是雙目運算子,其結合性均為左結合。關係運算子的優先順序低於算術運算子,高於賦值運算子。在六個關係運算子中,前四個<,<=,>,>=的優先順序相同,高於==和!

=,==和!=的優先順序相同。

用於比較運算,包括:大於(>)、小於(<)、等於(==)、大於等於(>=)、小於等於、(<=)、不等於(!=)。

擴充套件資料源**如下:

#include

main()

/* lets change value of a and b */a = 5;

b = 20;

if ( a <= b ) {

2樓:匿名使用者

c語言字串比較不能直接用關係運算子進行正確比較。

可以用 字串比較函式strcmp

格式: strcmp(字元陣列名1,字元陣列名2)功能:按照ascii碼順序比較兩個陣列中的字串,並由函式返回值返回比較結果。

字串1=字串2,返回值=0;

字串2〉字串2,返回值〉0;

字串1〈字串2,返回值〈0。

本函式也可用於比較兩個字串常量,或比較陣列和字串常量。

3樓:匿名使用者

不可以,相應的函式. 在庫string.h裡比如比較兩個字串是否相等,用strcmp列入char *a;

char *b;

if (strcmp(a,b)==0)

printf("equal!\n");

還有比如將兩個b字串連線到a字串的末尾,用strcat其他的還有很多. 網上搜尋下就知道了:)

4樓:匿名使用者

不可.因此有一系列字串比較函式

在string.h標頭檔案中

如下比較strcmp

複製strcpy

連線strcat

長度strlen

較易掌握的

5樓:

不可以,有專用的strcmp(),直接用的話,用的是ascii碼

6樓:

不可以呀!但是你可以轉換成數字再比較雅

c語言,求大神解答。字串大小的比較可以用關係表示式嗎?還是說只能用函式strcmp比較大小?另外

7樓:司馬浩波泥琪

字串的比較不能用關係表示式,因為關係表示式比較的是記憶體中數值的大小,如果字串a和字串b用關係表示式a<

b比較,比較的是a和b字串第一個元素的,地址的大小,因為陣列名即為第一個元素的地址。所以只能夠用strcmp,或者自己寫一個比較的函式。

sizeof()用於求型別的大小,是一個關鍵字,如sizeof(int),表示求int

型別所佔記憶體的大小。

c語言中,怎麼使用字串表示的運算子

8樓:

猜你是想完成類似於 a+b,a-b...之類的運算吧。

一句完不成,得進行判斷。如:

if(op=='+')z=x+y;

else if(op=='-')z=x-y;

else if(op=='*')z=x*y;

....

return z;

9樓:

if(p=='+')

z=x+y;

if(p=='-')

z=x-y;

後面的類似

c語言關係運算子

10樓:蘇嘉愛娛樂

>>是右移運算子,移位運算子的一種:程式設計中,位操作運算子的一種。

c語言中位移位運算子是將資料看成二進位制數,對其進行向左或向右移動若干位的運算。位移位運算子分為左移和右移兩種,均為雙目運算子。第一運算物件是移位物件,第二個運算物件是所移的二進位制位數。

位移位運算子的運算物件、運算規則與結果、結合性如表2-16所示。

移位時,移出的位數全部丟棄,移出的空位補入的數與左移還是右移有關。如果是左移,則規定補入的數全部是0;如果是右移,還與被移位的資料是否帶符號有關。若是不帶符號數,則補入的數全部為0;若是帶符號數,則補入的數全部等於原數的最左端位上的原數(即原符號位)。

擴充套件資料

優先順序:

語言中各運算子的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算子的結合性是自左至右,即先左後右。如有表示式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。

這種自左至右的結合 方向就稱為「左結合性」。而自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算子是賦值運算子。

如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。c語言運算子中有不少為右結合性,應注意區別,以避免理解錯誤。

優先順序從上到下依次遞減,最上面具有最高的優先順序,逗號操作符具有最低的優先順序。

11樓:本草探花

不會吧,他們的計算結果應該是0、1

第一題,5>4>3中,從左到右運算,先算5>4,明顯該式子成立,邏輯結果是1,把1替代5>4再計算,即1>3,明顯此式子不成立,邏輯結果是0。

第二題,3<2<5,先算3<2,不成立,邏輯結果為0,再算0<5,成立,邏輯結果為1。

所以這兩個題目計算結果應該是0、1

補充知識:我用「邏輯結果」,是因為它們是邏輯運算,關係運算屬於邏輯運算中的一種,邏輯運算的結果只有2個,不是0就是1.

5>4>3、3<2<5這兩個式子在c語言中屬於關係運算,應該按照c語言的語法來算,這個和數學中的不等式是2碼事,不能混淆了

12樓:

5>4>3 : 5>4 為真, 值為 1 ; 1>3 為假, 值為 0

3<2<5 : 3<2 為假, 值為 0 ; 0<5 為真, 值為 1

跪求c語言字串處理函式,跪求 c語言字串 7個處理函式

1.字串連線函式 strcat 原型 char strcat char str1,const char str2 2.字串查詢函式 strchr 原型 char strchr const char str1,const char str2 3.字串比較函式 strcmp 原型 int strcmp ...

C語言字串陣列問題

c語言中,賦值 與 賦初值 又叫初始化 是不一樣的。在定義變數的同時賦值,叫賦初值,而定義後賦值就是普通的賦值了。你說的 不能用賦值語句將一字串常量或字元陣列直接賦值給一個字元陣列 這句話是說普通賦值的情況,也就是,不能定義一個字元陣列以後,再給他直接賦值。而 char s 12345 這個語句,是...

c語言問題將字串a複製到字串b中

1 首先需要建立一個新的檔案,輸入標頭檔案和主函式。2 接下來需要定義變數型別。3 設定完變數型別之後開始呼叫cpy函式。4 接下來需要定義一個函式,並定義變數型別。5 最後加一個字串結束符,並在主函式中輸出。6 編譯。執行,可以看到字串a複製到字串b中。將字串a複製到字串b中,簡單的方法是使用st...