当前位置: 代码迷 >> C语言 >> [原创]替换子串
  详细解决方案

[原创]替换子串

热度:233   发布时间:2005-05-01 05:01:00.0
[原创]替换子串
题目:将子串str中第一次出现的str1子串替换成str2。形成一个新的str。
#include<stdio.h>
#include<string.h>
main()
{ char str[100],str1[10],str2[10];
  int len,len1,len2,i,j,k=-1,n,flag=0,tag;
  printf("please input str1:\n");
  gets(str);
  len=strlen(str);
  printf("please input str2:\n");
  fflush(stdin);
  gets(str1);
  len1=strlen(str1);
  printf("please input str3:\n");
  fflush(stdin);
  gets(str2);
  len2=strlen(str2);
for(i=0,j=0;i<len;)
  {if(str[i]==str1[j])
      { i++;
        j++;
  if(j==len1)
  { k=i-j;
    break;
  }
   }
   else
   { i=i-j+1;
     j=0;
   }  
  }
  k=i-j;  //k指向删除字符串的下标
  for(i=k;i<len1+k;i++)    //删除子串
   str[i]=str[i+len1];
     len-=len1;
   str[len]='\0';
   for(i=len-1;i>=k;i--)     //为插入子串str2做准备
    str[len2+i]=str[i];
       for(i=0;i<len2;i++)    //插入子串str2
         str[i+k]=str2[i];
  len+=len2;
  str[len]='\0';
   for(i=0;i<len;i++)
    printf("%c",str[i]);
   printf("\n");
}
本来要写str中所有出现的str1子串替换成str2子串的。写了一个通宵都是写不出。写到已经麻木了~~~~~~~~

搜索更多相关的解决方案: include  please  

----------------解决方案--------------------------------------------------------
这不是已经可以了吗?  你输入luodongdongming试一下
----------------解决方案--------------------------------------------------------
呵呵,
继续努力吧,这个要实现不难的

还有,以后长点的程序尽量都要给点/**/否则真的没什么人想去看
----------------解决方案--------------------------------------------------------
神  来灌水呢?
----------------解决方案--------------------------------------------------------
是啊,我总觉得这个论坛怪怪的,却又说不出少点还是多了点什么....
郁闷百分百
----------------解决方案--------------------------------------------------------
恩  好象没人气啊  
给人解答问题的人也少的很
----------------解决方案--------------------------------------------------------
每天500的发帖量都去那里了?
----------------解决方案--------------------------------------------------------
古人云:怪亦怪哉 不怪则不怪
----------------解决方案--------------------------------------------------------
  相关解决方案