c c 字串操作 總結

2021-04-25 05:10:03 字數 942 閱讀 2351

對於搞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 引...