1、串的長度:串中所含字符的個數 空串:長度為0 空格串:由多個空格字符構成的字符串
2、子串 定義:串中任意個連續的字符組成的子序列成為該串的子串 計算方法:ab的子串:a、b、ab和一個空子串共4個即(2+1+1)個,abc的子串:a、 b、 c、 ab、 bc 、abc和一個空子串 共(3+2+1+1)個, 所以若字符串的長度為n,則子串的個數就是[n*(n+1)/2]個, “software”中非空子串的個數就是8+7+….+1=36個。 3、KMP算法、BF算法 BF算法(普通匹配算法):時間復雜度O(m*n);看空間復雜度O(1) KMP算法:時間復雜度O(m+n);空間復雜度O(n) 4、多型數據結構 多型:數據元素的類型不確定 棧:整數棧、字符棧、對象棧 字符串:字符 5、模式匹配 模式匹配是數據結構中字符串的一種基本運算,給定一個子串,要求在某個字符串中找出與該子串相同的所有子串,這就是模式匹配 6、廣義表與字符串 廣義表L=(A,B,C),表頭是A,表尾是(B,C),這是定義。 tail()表示取字符串的尾部,head()表示取字符串的頭,concat()表示字符串拼接。 取兩次尾部一次頭部,然后合并 7、把字符串“abcd”倒序“dcba”
#include<iostream>using namespace std;int main(){char *src="hello,world";char *dest=NULL;int len=strlen(src);dest=(char*)malloc(len+1);char *d=dest;char *s=&src[len-1];while(len--!=0){*d++=*s--;}*d='/0';查找字符串: 函數fun的功能是:從形參ss所指字符串數組中,查找含有形參substr所指子串的所有字符串,并輸出,若沒找到則輸出相應信息。Ss所指字符串數組中共有N個內容不同的字符串,且串長小于M。 程序中庫函數strstr(s1,s2)的功能室在s1串中查找s2子串,若沒有,函數值為0;若有,函數值為非0。 請在程序的下畫線處填入正確的內容并將下畫線刪除,使程序得出正確的結果。 試題程序。void fun(char (*ss)[M], char *substr) { int i, find = 0; /*****found*****/ for (i = 0; i < N); i++) /*****found*****/ if ( strstr(ss[i], substr )) != NULL ) { find = 1; puts(ss[i]); printf(“/n”); } /*****found*****/ if (find == 0 ) printf(“/nDon’t found!/n”); } void main( ) { char x[N][M] = {“BASIC”, “C langwage”, “java”, “QBASIC”, “access
”}, str[M]; int i; printf(“/nThe original string/n/n”); for (i = 0; i < N; i++) puts(x[i]); printf(“/n”); printf(“/nEnter a string for search : “); gets(str); fun(x, str); }新聞熱點
疑難解答