主观

阅读下列算法说明和算法,将应填入(n)处的语句写在对应栏内。

  【说明】

 本程序可以将字符串s1中出现的所有s2子串替换成s3,形成一个新串,但不破坏字符串s1。

 【代码】

 #include<stdio.h>

 #include<stdlib.h>

 #include<string.h>

 char*replace(char *s1, char *s2,char *s3)

 {  char *p, *q, *r, *s; int |2,|3, i=0;

    |2=strlen(s2);

    |3=strlen(s3);

    p=s1;

    while((p=strstr(p,s2))!=NULL)

    {  i++;  /* 统计s2串出现的次数*/

       (1);

    }

    i=(2);

    s=r=(char*)malloc(i);  /*分配动态内存存放新字符串*/

    p=s1;

    while(1)

    {  q=strstr(p, s2);  /* s2串是否在s1中出现,q是首次出现的位置*/

      if(q!=NULL)

      {  i=q-p;

         (3);

         r+=i;

         (4);

         r+=|3;

         p=q+|2;   /*将指向s1串的指针移到s2子串出现的位置后,

                 为下一次循环做好准备*/

      }

      else    /*q为空,表示剩余的s1串中已经没有s2*/

      {   (5);

         break;    /*终止循环*/

      }

    }

    return(s);    /*返回指向所形成的新串的指针*/

 }

 void main()

 {  char *a="sabcababde", *b="ab", *c="efg", *d;

    d=replace(a, b, c); printf("result=%s\n", d); free(d);

 }

参考答案
您可能感兴趣的试题
¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服