1. 程式人生 > >異或運算 之 字串的匹配問題

異或運算 之 字串的匹配問題

簡要的說一下,C語言的異或運算支援的資料型別     是   可以轉化為位運算的資料型別,在C中,包括整形,字元型,以及列舉型別。

在處理字串的匹配問題時,就可以有一種新的思路了。

將    待匹配的字串 和  文字字串   分別轉化為      字元陣列。然後進行兩個字元陣列的匹配(也就是異或運算)

主要意思如下,描述的可能不太精確,理解含義即可:

for(int i=0  ; i<=source.length-target.length ; i++)

   {

           if(match(i,i+target.length)==1)

          cout<<"match  successful"<<endl;

   }

int match(int i,int j)

    int result=0;

    for(;i<=j;i++)

   {    

          result=source[i]^targrt[i];

          if(result !=0){

             return 0;  }

    }

   return 1;

}