打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
替换字符串

 

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;

}

运行结果如图:
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
实现整数转化为字符串函数itoa()函数
《C语言程序设计》第三版课后答案
嵌入式开发C语言编程的那些编程思路与技巧
C++:实现split分割字符串
C语言中的字符串截取函数及应用
ASCII与十六制字符串互相转换
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服