如何编写实现串的置换操作Replace&STV的算法

(分钟前 更新) 434 7481

最新回答

解:
int Replace(Stringtype &S,Stringtype T,Stringtype V);//将串S中所有子串T替换为
V,并返回置换次数
{

for(n0,i1;i<Strlen(S)-Strlen(T)+1;i++) //注意i的取值范围

if(!StrCompare(SubString(S,i,Strlen(T)),T)) //找到了与T匹配的子串

{ //分别把T的前面和后面部分保存为head和tail

StrAssign(head,SubString(S,1,i-1));

StrAssign(tail,SubString(S,i+Strlen(T),Strlen(S)-i-Strlen(T)+1));

StrAssign(S,Concat(head,V));

StrAssign(S,Concat(S,tail)); //把head,V,tail连接为新串

i+Strlen(V); //当前指针跳到插入串以后

n++;

n++;

}//if

return n;
}//Replace
分析:i+Strlen(V);这一句是必需的,也是容易忽略的.如省掉这一句,则在某些情况下, 会引起不希望的后果,虽然在大多数情况下没有影响.请思考:设S&39;place&39;, T&39;ace&39;, V&39;face&39;,则省掉i+Strlen(V);运行时会出现什么结果?
a长了一半的草 2024-05-20

扩展回答

热门问答

装修专题

首页 >  如何编写实现串的置换操作Replace&STV的算法

其他人还看了

页面运行时间: 0.050362110137939 秒