異或運算 之 字串的匹配問題
阿新 • • 發佈:2018-12-15
簡要的說一下,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;
}