[原创]替换子串
题目:将子串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子串的。写了一个通宵都是写不出。写到已经麻木了~~~~~~~~
----------------解决方案--------------------------------------------------------
这不是已经可以了吗? 你输入luodongdongming试一下
----------------解决方案--------------------------------------------------------
呵呵,
继续努力吧,这个要实现不难的
还有,以后长点的程序尽量都要给点/**/否则真的没什么人想去看
----------------解决方案--------------------------------------------------------
神 来灌水呢?
----------------解决方案--------------------------------------------------------
是啊,我总觉得这个论坛怪怪的,却又说不出少点还是多了点什么....
郁闷百分百
----------------解决方案--------------------------------------------------------
恩 好象没人气啊
给人解答问题的人也少的很
----------------解决方案--------------------------------------------------------
每天500的发帖量都去那里了?
----------------解决方案--------------------------------------------------------
古人云:怪亦怪哉 不怪则不怪
----------------解决方案--------------------------------------------------------