C語言:使用指標實現字串比較函式,strcmp,為什麼輸出亂碼?

發布 科技 2024-07-31
4個回答
  1. 匿名使用者2024-01-31

    printf("%d",&i);它應該改為 printf("%d",i);

    這是變數 i 的位址。 刪除位址字元是 i 的值。

    希望能有所幫助。

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

    修改如下**:

    #include

    int strcmp(char *,char *)int main()

    char a[80],b[80];

    int i =0;

    printf("請輸入任意兩個字串");

    scanf("%s,%s",a,b);

    i=strcmp(a,b);

    printf("%d",i);

    system("pause");

    int strcmp(char *str1,char *str2)int i;

    for (i=0; *str1+i)!='\0'&&*str2+i)!='\0';i++)

    if(*(str1+i)>*str2+i))return 1;

    else if(*(str1+i)<*str2+i))return -1;

    elsecontinue;

    if (*str1+i)=='\0'&&*str2+i)=='\0')

    return 0;

    else if(*(str1+i)!='\0'&&*str2+i)=='\0')

    return 1;

    elsereturn -1;

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

    i=strcmp(&a,&b);

    相反。 i=strcmp(a,b);

    printf("%d",&i);

    相反。 printf("%d",i);

    房東對這個位址還是有點含糊不清。

    我不明白。

    讓我們一起進步!

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

    strcmp 函式用於兩個字串。

    具體用法如下:

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

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

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

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

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

相關回答
4個回答2024-07-31

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

20個回答2024-07-31

這個問題實際上是由 char 指標的特殊性和 cout 函式的過載函式引起的 >>>More

11個回答2024-07-31

我剛剛做了乙個壓縮程式,對不起,現在可以解壓了。 >>>More

10個回答2024-07-31

這個錯誤令人震驚。

至少,它應該是乙個陣列。 >>>More

14個回答2024-07-31

這似乎是低效的,但數量是最少的。

string str = "1212324"; >>>More