2023年10月14日 課下練習
/*
整型資料最好不要用 引用傳參
*/#include
#include
#define maxsize 100
typedef struct
sqstring;
//初始化串
void initstring(sqstring* &s)
//生成乙個與str串相等的s串
void strassign(sqstring* &s,char str)
s->data[i]='\0';
s->length=i;//不包括字串最後乙個空字元
}//將串t複製給串s
void strcopy(sqstring* &s,sqstring* &t)
s->data[i]='\0';
s->length=t->length;
}//判斷兩個串是否相等
bool strequal(sqstring* &s,sqstring* &t)
}return true;
}}//返回串中的字元數
int strlength(sqstring* &s)
//將串s和串t連線在一起
sqstring* concat(sqstring* &s,sqstring* &t)
for(i=s->length; ilength+t->length; i++,j++)
p->data[s->length+t->length]='\0';
p->length=s->length+t->length;
return p;
}//求子串:返回串s中從第i個字元開始的,由連續j個字元組成的子串
sqstring* substr(sqstring* &s,int i,int j)
q->length=j;
q->data[j]='\0';
returnq;}
//將串t插入到串s中第i個位置,並返回新的串
sqstring* insstr(sqstring* &s,int i,sqstring* &t)
for(j=0; jlength; j++)
for(j=i-1; jlength; j++)
q->length=s->length+t->length;
q->data[q->length]='\0';
returnq;}
//從串s中刪去第i個字元開始的長度為j的子串,並返回產生的新串
sqstring* delstr(sqstring* &s,int i,int j)
for(k=i+j-1; klength; k++)
q->length=s->length-j;
q->data[q->length]='\0';
returnq;}
//在串s中,將第i個字元開始的j個字元構成的子串用串t替換,並返回產生的新串
sqstring* repstr(sqstring* &s,int i,int j,sqstring* &t)
for(k=0; klength; k++)
for(k=i+j-1; klength; k++)
q->length=s->length-j+t->length;
q->data[q->length]='\0';
returnq;}
//輸出串
void printstr(sqstring* &s)
printf("\n");
printf("%d\n",s->length);
}void getnext(sqstring* &s,int
next)
else
k=next[k];
}}int kmpindex(sqstring* &s,sqstring* &t)
else
}if(j>=t->length)
return (i-t->length);
else
return -1;
}int main()
; char b[20]= ;
sqstring *p;
sqstring *q;
// sqstring *m,*n;
initstring(p);
initstring(q);
strassign(p,a);
strassign(q,b);
//m=insstr(p,5,q);
//n=delstr(m,5,4);
//printstr(n);
v=kmpindex(p,q);
printf("%d\n",v);
return
0;}
定長順序串的kmp演算法
include include using namespace std define maxstrlen 200 define true 1 define false 0 define ok 1 define error 0 define infeasible 1 define overflow 2...
練習 順序串的實現及應用
define maxlength 60 typedef struct seqstring void strassign seqstring s,char cstr 串的賦值操作 int strempty seqstring s 判斷串是否為空,串為空返回1,否則返回0 int strlength s...
順序容器 字串操作
include include include using namespace std void replace string string s,const string oldval,const string newval if iter2 oldval.end while iter2 newva...