-
您可以嘗試輸出,scanf 函式是從緩衝區讀取的資料,第二個字串的資料是空格或換行符製表符。 您可以單獨讀取它們,但在兩者之間新增 fflush(stdin); 清除緩衝區。
-
不能使用關係運算子來比較字元陣列中的字串。 您可以使用關係運算子操作字元,但不能在字串上操作。 凱模仿孝道。
在 C 語言中,有以下關係運算子:
1.“小於。
2.“小於或等於。
3. >大於。
4. >大於或等於。
5. = 等於。
6.盯著手稿看!= 不相等。
關係運算元都是雙目運算元,它們的共軛是左繫結的。 關係運算子的優先順序低於算術大圖運算子,高於賦值運算子。 在六個關係運算子中,前四個<,即 的優先順序與 == 和 ! 和! =。
用於比較運算,包括:大於(>)小於(<)等於(==大於或等於(>=小於或等於,(“不等於(!.”)=
-
您可以使用庫函式 strcmp 來確定情況,如下所示:
strcmp 是乙個庫函式,用於比較 C 語言中字串的形式為 int strcmp(char *a, char *b);
此函式將根據 ASCII 碼值比較 A 和 B 的每個字元,如果兩者相同,則返回 0; 如果 A 的 ASCII 值顯示較大,則返回 1。 否則,返回 -1。
所以,要判斷字串相等,你可以使用它。
將字串與上面的 strcmp() 函式進行比較的示例。
#include
#include
int main(void)
char str_1 abc";
char str_2 abc";
char str_3 abc";
if (strcmp(str_1, str_2) =0)
printf("str_1 is equal to str_2. ");
elseprintf("str_1 is not equal to str_2. ");
if (strcmp(str_1, str_3) =0)
printf("str_1 is equal to str_3.");
elseprintf("str_1 is not equal to str_3.");
return 0;
-
首先,字元陣列與字串不同,可以省略拆分字元陣列'\0',字串的最後乙個字元必須為'\0'。
第二,比較兩個字串,從兩個字串的第乙個位置開始比較ASCII碼,如果第一位相同,看第二個數字停止類比,如“ab”。"大於“cdefghijk”。"目標。
第三,字串出現多久就出現'0'手稿年,後者根本不存在,字元陣列為,如:char
s[5]=,而字串是。
chars[5]="abcd".
第四,如果乙個字串是另乙個字串的子字串,則父字串很大,如果你理解了前三點,這是正確的,因為父字串的最後一位不是'\0',並且子字串已經是'\0'完成。