假设采用动态存储分配的顺序串HString作为串的存储结构。该类型实现的串操作函数原型说明如下: 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); }