分享

替换字符串

 BUPT-BYR 2010-12-08

 

28.替换字符串(有点错误)

 

#include<stdio.h>

int w=0;

int count(char*str);

int search(char*str1,char*str);

char*replaceAll(char*str1,char*str2,char*str3);

main()

{

       char*str1=NULL,*str2=NULL,*str3=NULL;

 

       printf("请输入源字符串:");

       gets(&str1);

       printf("请输入要被替换的字符串:");

       scanf("%s",&str2);

       printf("请输入替换目标字符串:");

       scanf("%s",&str3);

       printf("替换后的字符串是:");

//     printf("%s",*replaceAll(*str1,*str2,*str3));

       *replaceAll(*str1,*str2,*str3);

       puts(&str1);

       return(0);

}

 

int count(char*str)

{

       int i=0;

       while(*(str+i)!='\n')

              i=i+1;

       return i;

}

 

int search(char*str1,char*str2)

{

       int i, j,num=0;

       for(i=0;i<=count(*str1)-1;i++)

              if(*(str1+i)==*str2)

              {

                     for(j=1;j<=count(*str2)-1;j++)

                     {

                            if(*(str1+i+j)==*(str2+j))

                                   num=num+1;

                     }

                     if(num==count(*str2)-1)

                     {

                            w=i;

                            return 1;

                     }

              }

       return 0;

}

 

char*replaceAll(char*str1,char*str2,char*str3)

{

       int i,j,k;

       j=count(*str2);

       k=count(*str3);

       if(search(*str1,*str2)==1)

       {

              for(i=w;i<=w+j-1;i++)

                     *(str1+i)=*(str1+i+j);

              for(i=w+k*2-1;i>=w+k;i--)

                     *(str1+i)=*(str1+i-k);

              for(i=0;i<=k-1;i++)

                     *(str1+i+w)=*(str3+i);

       }

       return *str1;

}

运行结果如图:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多