一.字符串朴素模式匹配算法实现

  1. //对主串的每一个字符作为子串开头,与要匹配的字符串进行匹配  
  2.  
  3. //假设主串S和要匹配的子串T的长度存在S[0]和T[0]中  
  4. int Index(String S, String T, int pos)  
  5. {  
  6.  
  7.     int i = pos; //用于主串S中当前位置下标  
  8.  
  9.     int j = 1; //用于子串T中当前位置下标值  
  10.  
  11.     while(i <= S[0] && j <= T[0])  
  12.     {  
  13.         if (S[i] == T[j])  //两字母相等则继续  
  14.         {  
  15.             ++i;  
  16.             ++j;  
  17.         }  
  18.         else              //指针后退重新开始匹配  
  19.         {  
  20.             i = i-j+2;   //i退回到上次匹配首位的下一位  
  21.             j = 1;       //j退回到子串T的首位  
  22.         }  
  23.     }  
  24.  
  25.     if (j > T[0])  
  26.     {  
  27.         return i - T[0];  
  28.           
  29.     }   
  30.     else 
  31.     {  
  32.         return 0;  
  33.     }  
  34.  
  35. }