本文章寫的是資料結構之定長字串的實現
定長字串
資料結構定義為
#define maxsize 256
typedef char sstring[maxsize+1];
s[0]儲存串的長度
#include#include#include#include#include#includeusing namespace std;
#define ok 1
#define error 0
typedef int status;
#define maxsize 256
typedef char sstring[maxsize+1];
/*定長字串
這種字串的是s[0]儲存著字串的長度
*/int strlength(sstring s)//返回是字元長
int strcompare(sstring s,sstring t)//若兩字串相等就返回0,否則返回ascill碼的差值,
return s[0]-t[0];
}int next[100];
int index(sstring s,sstring t,int pos)//字元匹配之樸素匹配法
else
}if(j>t[0])return i-t[0];
else return 0;
}int index_kmp(sstring s,sstring t,int pos)//kmp演算法
else j=next[j];
}if(j>t[0])return i-t[0];
else return 0;
}int get_next(sstring t)
else j=next[j];
}}void strinput(sstring &s)//因為定長順序字串的首位置儲存的是字串的長度,故用專門的輸入函式來輸入這種字串
s[0]=i-1;
s[i]='\0';
}int main()
; sstring s,t;
strinput(s);
strinput(t);
// printf("%d",s[0]);
// printf("%d",strcompare(s,t));
// for(i=1; i<=s[0]; i++)
// printf("%c",s[i]);
get_next(t);
// for(i=1; i<=t[0]; i++)
// printf("%d ",next[i]);
printf("%d",index_kmp(s,t,1));
// printf("%d\n",index(s,t,1));
return 0;}/*
abaabcac
abcde
abcc
abcdefg
def*/
資料結構之字串
夢醒瀟湘love 1 串的相關概念 1 串 string 是由零個或多個字元組成的有限序列,又名叫字串。2 串中含有的字元資料稱為串的長度,零個字元的串稱為空串 null string 它的長度為零。3 子串與主串,串中任意個數的連續字元組成的子串行稱為該串的子串,相應地,包含子串的串稱為主串。4 ...
資料結構之 字串
一 簡介 字串或者說串 string 是由數字 字母。下劃線組成的一串字元。一般可以記為s a0a1a2a3.an n 0並且n是有限非負整數 從資料結構上來看,用c 來說,字串是一種特殊的線性表,也就是裡面的每個元素都是字元的一種線性表。可以是用陣列實現,或者鍊錶實現。具體的優缺點可以參照陣列和鍊...
cin輸入不定長的字串
正常情況下,cin遇到空格結束讀取,寫個小例子 int main string a cin a cout 如何讀取帶空格的字串呢,通常由三種方式如下 include using namespace std main char a 20 cin.get a,20 coutmain char m 20 ...