1、2.4 串,一、串的定义和运算,1、定义:串 :是由n个字符a1,a2,an组成的有限序列(n0),记作S=“a1a2an”其中n称为串的长度,n=0时为空串。 注意:空串和空格串的区别:子串:串S中若干个连续的字符组成的序列。,一、串的定义和运算运算,2、运算: (1)赋值(S=S1): (2)求长度str_length(S): (3)连接运算(S1+S2):将S1和S2连接成一个新串; (4)求子串substr(S,i,j):返回串S从第i个元素开始的j个元素所组成的子串 ;,一、串的定义和运算运算,2、运算: (5)串比较:比较两个串的大小 ;equal(S1,S2); strcmp(S
2、1,S2); (6)插入运算str_insert(S,i,S1):将子串S1插入到串S的从第i个字符开始的位置上 ; (7)删除运算str_delete(S,i,j):删除串S中从第i个字符开始的j个字符 。,二、串的存储,1、顺序串:,非紧凑格式顺序串,紧凑格式顺序串,优点:节省空间; 缺点:运算不方便;,优点:运算方便; 缺点:浪费空间;,二、串的存储链串,2、链串:,结点大小(容量)为4,The End,一、串的运算空子串,(1) S1=“”;S2=“ ”;S1是空串,长度为0;S2是空格串,长度为5。(2)S3=“abcdefg”;S4=“bcd”;S5=“abe”;S4是S3的子串;S5不是S3的子串。,例,一、串的运算连接运算,已知:S1=“He”;S2=“Fei”;则:S1+S2=“HeFei”;,例,一、串的运算求子串,S=“abcdefg”;substr(S,2,4)=“bcde”,例,一、串的运算插入,已知:S=“abcdefg”;S1=“123”;str_insert(S,4,S1)=“abc123defg”;,例,一、串的运算删除,S=“abcdefg”;str_delete(S,3,2)=“abefg”;,例,