(C語言)字串比較函數,指標數組與數組指標

來源:互聯網
上載者:User

標籤:c語言   字串比較函數   指標數組   數組指標   

問題描述:

寫一個函數,用於比較兩個字串的比較(string_compare).

程式分析:

(1)主要思想:傳入兩個字串後,比較這兩個字串中的每個元素,如果第一次比較就不相等,就不要讓它進入到下面的比較中。這樣一來,將它返回一個相減的值(即:兩數組中開始不相等的那兩個元素相減,返回值(int類型),是ASCII碼值相減)。進入比較的過程中時,相等就返回0;其他情況都返回那個相減的值。

(2)主要方式:定義指標數組,並對其初始化。然後照上面的思想,進行代碼的實現。

代碼如下:

/***指標數組(1)int *a[10] 是一個指標數組--->是一個數組(每個數組中的元素都是int*類型)(2)int (*a)[10] 是一個數組指標--->指向一個數組(十個int類型的數組) 注意:*,[],()的優先順序依次遞增。下面使用了指標數組的例子,至於數組指標。。**/#include<stdio.h>#include<assert.h>int string_compare(const char *str1,const char *str2){assert(str1);  //ASSERT( f )assert(str2);/*在Debug模式下,每次運行到這裡後會計算括弧中的運算式,如果運算式為0,則中斷執行,彈出一個警告框,使用者可選擇“繼續”,“重試”,“忽略”在Release模式下,這句語句不會被編譯進代碼。 ASSERT一般用於程式內部確認參數的正確性,即調用內建函式的時候,要由調用者保證參數的正確,而被調用函數內部,就可以通過ASSERT來檢查參數是否滿足要求。*/while(*str1 ==  *str2 )//判斷兩個數組中的元素是否相等{str1++;  //使兩個指標指向下一位;繼續比較str2++;if(*str1 == '\0')  //雙方比較到'\0'處,都相等{return 0;   //返回0,表示二字串相等}}return *str1-*str2; //若不相等,返回一個正值或負值}int main(){char *ch[2];ch[0] = "ab";//對這個指標數組的元素初始化,使其指向這個字串首元素的首地址ch[1] = "a";//同上printf("%d\n",string_compare(ch[0],ch[1]));//調用這個函數return 0;}



(C語言)字串比較函數,指標數組與數組指標

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.