📄 4_25.cpp
字号:
#include "String1.h"
#include "String.h"
int Index(HString &S, HString &T, int pos)
{
HString sub;
if (pos>0)
{
int m,n,i;
n=Strlen(S); m=Strlen(T); i = pos;
while ( i <= n-m+1)
{
SubString(sub, S, i, m);
if (StrCompare(sub,T) != 0)++i ;
else return i ;
}
}
return 0;
}
void replace(HString &S, HString &T, HString &V)
{
int m,n,pos,i;
HString news,sub;
char a[100]={""};
n=Strlen(S); m=Strlen(T); pos = 1;
StringAssign(news, a);
i=1;
while ( pos <= n-m+1 && i)
{
i=Index(S, T, pos);
if (i!=0)
{SubString(sub, S, pos, i-pos); // 不置换子串
Concat(news, news, sub);
Concat(news, news, V);
pos = i+m;
}
}
SubString(sub,S, pos, n-pos+1);
Concat(S, news, sub );
}
void main()
{
HString S,T,V;
char s1[100] ,s2[100],s3[100];
puts("请输入三个字符串:");
puts("输入主串s1:");
gets(s1);
puts("输入被替换串s2(包含在主串中):");
gets(s2);
puts("输入替换串s3(用它去替换主串s1中的s2串:");
gets(s3);
puts("\n\n主串s1为:");
puts(s1);
puts("被替换串s2为:");
puts(s2);
puts("替换串s3为:");
puts(s3);
StringAssign(S,s1);
StringAssign(T,s2);
StringAssign(V,s3);
replace(S,T,V);
puts("\n\n替换后的主串s1为:");
puts(S.ch);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -