采用顺序结构存储串,编写一个实现通配符匹配的函数pattern_index(),其中通配符取“?”,它可以和任
采用顺序结构存储串,编写一个实现通配符匹配的函数pattern_index(),其中通配符取“?”,它可以和任一字符匹配成功,例如,pattern_index("there","?re")返回的结果是2。
采用顺序结构存储串,编写一个实现通配符匹配的函数pattern_index(),其中通配符取“?”,它可以和任一字符匹配成功,例如,pattern_index("there","?re")返回的结果是2。
void strinit(HString s); //置s为空串
int strlen(HString s); //求串s的长度
void strcpy(HString to,HString from); //将串from复制到串to
void streat(HString to,HString from); //将串from联接到串to的末尾
int strcmp(HString s1,HString s2);
//比较串s1和s2的大小,当s1<s2,s1=s2或s1>s2时,
//返回值小于0,等于0或大于0
HString substr(HString s,int i,int m);
//返回串S中从第i(0≤i≤strlen(s)-m)个字符起长度为m的子串阅读下列算法f32,并回答问题:
(1)设串S="abcdabcd",T="bcd",V="bcda",写出执行f32(S,T,V)之后的S;
(2)简述算法f32的功能。
void f 32(HString S,HString T,HString V){
int m,n,pos,i;
HString news;
strinit(news);
n=strlen(S);
m=strlen(T);
pos=i=0;
while(i<=n-m){
if(strcmp(substr(S,i,m),T)!=0)i++;
else{
strcat(news,substr(S,pos,i-pos));
strcat(news,V);
pos=i=i+m;
}
}
strcat(news,substr(S,pos,n—pos));
strcpy(S,news);
}
实验目的:
(1)掌握串的顺序和链接存储结构的实现方法。
(2)掌握串的模式匹配算法。
(3)掌握和理解本实验中出现的一些基本的C语言语句。
(4)体会算法在程序设计中的重要性。
实验内容:
(1)设计串的模式匹配算法(子串定位)。
(2)若s和t是两个采用顺序结构存储的串,编写一个比较两个串大小的算法,若s>t,则返回1,若s<t,则返回-1,否则返回0。
采用顺序存储方式存储串,编写一个函数将串s1中的第i个字符到第j个字符之间的字符(不包括第i个和第j个字符)用s2串替换,函数名为substitute(s1,i,j,s2)。例如:substitute('abcd',1,3,'xyz')返回'axyzcd'。
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!