程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> 比較字符串的大小

比較字符串的大小

編輯:關於C語言

//功能:比較字符串的大小
//如果str1>str2返回1
//如果str1=str2返回0
//如果str1<str2返回-1
char zstrncmp(unsigned char *str1,unsigned char *str2,byte num)
{
   while(num!=0)
   {
      if((*str1)==(*str2))
      {
         str1 ++;
         str2 ++;
         num --;
      }
      else if((*str1)>(*str2))
         return(1);
      else
         return(-1);
   }
   return(0);
}
 
 
       如果單純比較長度,直接調用類似於strlen()之類的函數就可以,加以比較即可.
       如果比較字符串的大小,則比較的是字符的ASCII編碼的大小.搜索一下ASCII碼表就可以得知每一個ASCII字符的大小.
       在比較時,設置一個計數器,從零開始,一直循環到最短的那個字符結束,一位一位進行比較,
           1.如果 字符串1的第n位的ASCII碼值 等於 字符串2的第n位的ASCII碼值 則 繼續比較下一位
           2.如果 字符串1的第n位的ASCII碼值 大於 字符串2的第n位的ASCII碼值 則 輸出結果:1,表示字符串1 > 字符串2;  www.2cto.com
           3.如果 字符串1的第n位的ASCII碼值 小於 字符串2的第n位的ASCII碼值 則 輸出結果:-1 表示字符串1 < 字符串2;
           4.如果 每一位的ASCII碼值都相等,而且長度相同, 則 輸出結果:0 表示字符串1 == 字符串2;
           5.如果 字符串1是字符串2的前m位,例如 abcd 與abcdef 比較, 則 字符串1<字符串2. 原因是,到第5位時,字符串1的ASCII值是0,而字符串2的ASCII值為'e',即十進制的101,
               當然是字符串2大了.
      具體到 cds和lesoqd 從第一位開始,'c'和'l'比較,當然是'c' < 'l'了,所以,"cds" < "lesoqd"
          常用的幾位ascii的順序從小到大為: 0..9, A..Z, a..z.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved