2 baidu 24528529 baidu_24528529 于 2014.12.21 14:46 提问

求大神帮忙,把两个程序合成一个,既求出位置,又替换。
c++

1:#include
#include
#include
void main()
{
char strSource[6000],strFind[100];
puts("母串为:");
gets(strSource);
puts("要查找的子字符串为:");
gets(strFind);
cout<<"母串为:"< cout int i,t=0,l1,l2,k,f;
l1=strlen(strSource);
l2=strlen(strFind);
for(i=0;i {
k=0;
f=1;
while(f)
{
if(*(strSource+i+k)!=*(strFind+k))
f=0;
else
f=f+1;
k++;
if(f==l2+1)
{
t++;
f=0;
cout }
}
i+=k;
}
if(t==0)
cout }
2:#include
#include
#include
void exchange(char*strSource,char*strFind,char*strReplace)
{
int i,r,d,l1,l2,l3,k,f;
l1=strlen(strSource);
l2=strlen(strFind);
l3=strlen(strReplace);
d=l3-l2;
for(i=0;i {
k=0;
f=1;
while(f)
{
if(*(strSource+i+k)!=*(strFind+k))
f=0;
else
f=f+1;
k++;
if(f==l2+1)
{
if(d>0)
for(r=0;r<=l1-i-l2;r++)
(strSource-r+d+l1)=(strSource+l1-r);

if(d<0)
for(r=0;r<l1-i-l2+1;r++)
(strSource+i+l2+d+r)=(strSource+i+l2+r);

for(r=0;r<l3;r++)
(strSource+i+r)=(strReplace+r);
l1=l1+d;
f=0;
k=l3;

}
}

i+=k;

}
}
void main()
{

char strSource[6000],strFind[100],strReplace[100];
puts("母串为:");
gets(strSource);
puts("被替换的子字符串为:");
gets(strFind);
puts("子字符串被替换为:");
gets(strReplace);
exchange(strSource,strFind,strReplace);
cout<<"母串为:"<<strSource<<endl;
cout<<"被替换的子字符串为:"<<strFind<<endl;
cout<<"子字符串被替换为:"<<strReplace<<endl;
cout<<"替换后母串为:"<<strSource<<endl;
}

2个回答

devmiao
devmiao   Ds   Rxr 2014.12.21 19:02

把第二个函数的函数定义放在第一个程序的Main前面
然后把第二个程序的Main中的代码,贴在第一个程序的Main的代码的后面

devmiao
devmiao 回复baidu_24528529: 你贴的代码不完整。你没看出丢了很多字符么
接近 3 年之前 回复
baidu_24528529
baidu_24528529 具体操作 能不能写出来
接近 3 年之前 回复
ZR__MaNong
ZR__MaNong   2014.12.21 17:54

你写的太复杂了啊 可以直接调用函数的

baidu_24528529
baidu_24528529 大神 可以教教我吗
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片