c語言經常使用函數strcmp函數和strcpy函數

(一)strcmp函數  數組

         strcmp函數是比較兩個字符串的大小,返回比較的結果。通常形式是:  函數

                 i=strcmp(字符串,字符串);字符串

         其中,字符串1、字符串2都可爲字符串常量或變量;i   是用於存放比較結果的整型變量。比較結果是這樣規定的:  變量

①字符串1小於字符串2,strcmp函數返回一個負值;di

②字符串1等於字符串2,strcmp函數返回零;字符

③字符串1大於字符串2,strcmp函數返回一個正值;那麼,字符中的大小是如何比較的呢?來看一個例子。錯誤

         實際上,字符串的比較是比較字符串中各對字符的ASCII碼。首先比較兩個串的第一個字符,若不相等,則中止比較並得出大於或小於的結果;若是相等就接着 比較第二個字符而後第三個字符等等。若是兩上字符串前面的字符一直相等,像"disk"和"disks"   那樣,   前四個字符都同樣,   而後比較第 五個字符,   前一個字符串"disk"只剩下結束符'/0',後一個字符串"disks"剩下's','/0'的ASCII碼小於's'的ASCII 碼,因此得出告終果。所以不管兩個字符串是什麼樣,strcmp函數最多比較到其中一個字符串遇到結束符'/0'爲止,就能得出結果。

注意:字符串是數組類型而非簡單類型,不能用關係運算進行大小比較。  

         if("ABC">"DEF")   /*錯誤的字符串比較*/

         if(strcmp("ABC","DEF")   /*正確的字符串比較*/

(二)strcpy函數  

         strcpy函數用於實現兩個字符串的拷貝。通常形式是:  

                 strcpy(字符中1,字符串2)

         其中,字符串1必須是字符串變量,而不能是字符串常量。strcpy函數把字符串2的內容徹底複製到字符串1中,而無論字符串1中原先存放的是什麼。複製後,字符串2保持不變。  

例:    

         注意,因爲字符串是數組類型,因此兩個字符串複製不經過賦值運算進行。  

         t=s;   /*錯誤的字符串複製*/

         strcpy(t,s);   /*正確的字符串複製*/

相關文章
相關標籤/搜索