C 語言不使用 strcmp 來實現字串比較

發布 科技 2024-05-03
12個回答
  1. 匿名使用者2024-01-28

    這句話是乙個遍歷字串。 如果你沒有這句話,就用 k=str1[i]-str2[i]; 如果要判斷,只能判斷第乙個字元(例如"a"跟"ab"將被判定為平等)。

    while(str1[i]) 是確定字串 1 是否到達末尾的句子。

    if(str1[i]!=str2[i]) break;計畫是確定兩個字串的第 i 個字元彼此不相等,如果不相等,就會跳出來。

    else i++;如果兩個字串的第 i 個字元相等,則 i 遞增並判斷下乙個字元。

    跳出這個迴圈後,有幾種情況:

    兩個字串的長度不相等,如果 str1 很短,那麼在 str1 的末尾,while(str1[i]) 跳出迴圈,就是判斷 k=str1[i]-str2[i],它必須小於 0,所以 str1 < str2。

    如果 str2 很短,則迴圈將從 str2 末尾的 if(str1[i]!) 更改為=str2[i]) break;跳出來,用巨集觀灰塵判斷k。

    如果兩個字串的長度相等,並且乙個字元不相等並且被破壞,那麼最後只需要判斷 k=str1[i]-str2[i]; 你可以知道誰大誰小。 以上三者都不相等。

    如果所有字元都相等,則 k 為 0,然後確定相等。

  2. 匿名使用者2024-01-27

    比較字串中的每個字元是否相同。

  3. 匿名使用者2024-01-26

    strcmp 函式用於兩個字串。

    具體用法如下:

    1. strcmp 函式接受兩個字串引數,並根據比較結果返回乙個 int 型別的值。

    2. 如果返回結果的值小於 0,則表示 str1 字串小於 ASCII 碼上的 str2 字串。

    3. 如果返回結果,則返回值。

    如果大於 0,則 str2 字串小於 str1 字串。

    4.只有當返回值為0時,兩個字串才相同。

  4. 匿名使用者2024-01-25

    (1)strcmp是比較兩個字串的大小,當兩個字串相同時,返回0,當第乙個字串大於第二個字串時,返回乙個正值,否則返回乙個負值。

    2)比較兩個字串的演算法是:將兩個字串中的對應字元逐個比較,根據ASCII碼值確定字元大小,從左到右比較,如果遇到不同的字元,則第一對不同字元的大小關係由兩個字串的大小關係決定, 如果沒有遇到不同的字元,並且字串先結束,則字串較小,否則兩個字串相等。

  5. 匿名使用者2024-01-24

    strcmp(s1,s2)

    注意:使用 s1s2 時,返回值為 0

    從左到右逐個字元比較兩個字串(按 ASCII 值),直到遇到不同的字元或遇到'\0'直到。 如:

    a"<"b" "a">"a" "computer">"compare"

  6. 匿名使用者2024-01-23

    char *str="aaaa",*ch="bbbbb";

    if(strcmp(str,ch)>0) 是字串 ch 後面的字串 str。

    if(strcmp(str,ch)==0) 表示字串的內容相同。

    if(strcmp(str,ch)<0) 是字串 ch 前面的字串 str。

  7. 匿名使用者2024-01-22

    int strcompare(char *s1,char *s2)return (*s1-*s2);

    即把兩個字串對應的字元拿出來比對,可以返回第乙個不等字元比較的大小。 C語言系統為使用者提供了庫函式strcmp來實現上述功能。 呼叫格式為:strcmp(s1,s2);

    教師和教學,第乙個不平等的字元是教師的e和教學的i,所以教學是大的。

  8. 匿名使用者2024-01-21

    我想這也是strcmp

    比較兩個字串大小。

    一次按 ASCII 程式碼比較,以第乙個字元為準。

    例如: China chayz

    兩者的比較是 i 大於 a,i 和 a 的差值是 i-a=8(不知道計算是否正確。 返回的那個是 8

    兩個相等的返回 0

    第乙個小於第二個,並返回負數。

    你現在明白了嗎?

  9. 匿名使用者2024-01-20

    strcmp bar,比較字串編碼大小、ASCII 程式碼、GBK 程式碼。

  10. 匿名使用者2024-01-19

    strcpy 是乙個字串複製函式,用於將乙個字串複製到另乙個字串。

  11. 匿名使用者2024-01-18

    你是在問strcmp函式嗎?

    strcmp 函式比較兩個字串的大小並返回比較結果。 一般形式為:

    strcmp(字串 1, 字串 2);

    字串 1 小於字串 2,strcmp 函式返回負值;

    字串 1 等於字串 2,strcmp 函式返回零;

    如果字串 1 大於字串 2,則 strcmp 函式返回乙個正值;

    那麼,字元中的大小如何比較呢? 讓我們看乙個例子。

    實際上,字串比較比較字串中字元對的 ASCII 程式碼。

    首先,比較兩個字串的第乙個字元,如果不相等,則停止比較,結果大於或小於;

    如果相等,則比較第二個字元,然後比較第三個字元,依此類推。 如果兩邊字串前面的字元相等,比如"disk"跟"disks"這樣,前四個字元都相同,然後比較第五個字元,並比較前乙個字串"disk"只剩下結尾角色'/0',後乙個字串"disks"左's','/0'ASCII 程式碼小於's'ASCII程式碼,所以得到了結果。 因此,無論這兩個字串是什麼樣子,strcmp 函式最多只能比較其中乙個字串遇到終止符'/0'到目前為止,您可以得到結果。

  12. 匿名使用者2024-01-17

    strcmp 函式的引數只能是字串。

    在某些情況下,strcmp 還可用於比較數字字串。

    例如:長年對比"123"跟"124",前者比後者小,因為'齊尋紅 3'<'4'。

    還"20"跟"108"在這兩個字串中,前者大於後者,因為'2'>'1'。

    原因是字串大小的比較是從第一位開始從左到右按位比較的,如果第一位不同,則確定大小,不再比較以下字元。 如果第乙個數字相同,則第二個數字......比較原理與第乙個數字相同,直到兩個字元中的乙個不相同。

    如果要進行準確的數值比較,應首先將數值字串轉換為數值,然後比較大小。

相關回答
4個回答2024-05-03

您可以嘗試輸出,scanf 函式是從緩衝區讀取的資料,第二個字串的資料是空格或換行符製表符。 您可以單獨讀取它們,但在兩者之間新增 fflush(stdin); 清除緩衝區。

16個回答2024-05-03

這種說法是有問題的。

第一種情況。 char* s1 = "hello, world"; >>>More

12個回答2024-05-03

給你乙個簡明的解釋會幫助你理解。

#include >>>More

24個回答2024-05-03

這是 C 語言的類別:

根本原因是字串不是基本資料型別,它們的真名應該是“字串陣列”。 >>>More

5個回答2024-05-03

<>2.接下來,定義乙個大數字。

3.然後將數字轉換為字串並用逗號分隔。 >>>More