對於搞c/c++的人來說,不管是工作還是面試總是要遇到字串的問題,
對於字串的操作 ,常見的有3種,
(1) a串是不是b串的子串 ,《演算法 kmp>,資料結構裡有詳細的說明;
主要**:
void getnext(char *t,int * next)
else j=next[j]; } }
int indexkmp(char *s,char *t,int pos,int *next)
else
j=next[j];
}if(j>len_t)
return (i-j+1);
else
return -1;
}(2)在字串裡查詢最長重複子串 ,《演算法 字尾陣列》;
主要**:
int cmp(const void *a,const void *b)
int comlen(const char *p,const char *q)
void dealstring(char *p ,char **str )
}return maxlen;
}(3) 求a串與b串的最長公共公共子串, 《演算法 lcs>,
用乙個矩陣來記錄兩個字串中所有位置的兩個字元之間的匹配情況,若是匹配則為1,否則為0。然後求出對角線最長的1序列,其對應的位置就是最長匹配子串的位置。
主要**:
void lcs(int xlen, int ylen, char x, char y, int **c)
int i,j;
for(i=0;ifor(j=0;jc[i][j]=0; //初始化;
for(i=1;i<=xlen;i++)
for(j=1;j<=ylen;j++)
if(x[i-1]==y[j-1])
c[i][j]=c[i-1][j-1]+1;
C C 字串string操作的全面總結
字串操作看似簡單,其實非常重要,不注意的話,經常出現 執行結果和自己想要的不一致,甚至崩潰。總結一下構建string物件方法 修改string物件的方法 string型別的操作函式 string型別的查詢 string物件的比較。首先,為了在我們的程式中使用string型別,我們必須包含標頭檔案 如...
C C 字串string操作的全面總結
字串操作看似簡單,其實非常重要,不注意的話,經常出現 執行結果和自己想要的不一致,甚至崩潰。總結一下構建string物件方法 修改string物件的方法 string型別的操作函式 string型別的查詢 string物件的比較。首先,為了在我們的程式中使用string型別,我們必須包含標頭檔案 如...
字串操作總結
可返回指定位置的字元。string.charat index 引數 描述 index 必需。表示字串中某個位置的數字,即字元在字串中的位置。可返回某個指定的字串值在字串中首次出現的位置,如果沒有找到匹配的字串則返回 1。stringobject.indexof searchvalue,start 引...