假设采用动态存储分配的顺序串HString作为串的存储结构。该类型实现的串操作函数原型说明如下: void strinit(HString s); //置s为空串 int strlen(HString s); //求串s的长度

admin2008-07-10  20

问题 假设采用动态存储分配的顺序串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);
   }

选项

答案1.s="abcdaabeda" 2.串的置换操作,用串V置换串S中的子串T。

解析
转载请注明原文地址:https://kaotiyun.com/show/25Ax777K
本试题收录于: 数据结构题库理工类分类
0

随机试题
最新回复(0)