中易网

编写一个实现串的置换操作Replace(&S,T,V)的算法。

答案:1  悬赏:40  
解决时间 2021-01-27 11:52
编写一个实现串的置换操作Replace(&S,T,V)的算法。
最佳答案
解:
int Replace(Stringtype &S,Stringtype T,Stringtype V);//将串S中所有子串T替换为
V,并返回置换次数
{

for(n=0,i=1;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='place', T='ace', V='face',则省掉i+=Strlen(V);运行时会出现什么结果?
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
大神们.现在地心战熊有必要弄吗
全切双眼皮加开眼角有疤痕一个月了还有点肿能
怎么买省外流量
秋天,人们的日常生活发生了哪些变化【穿着变
DAT文件格式,这是从考勤机上下的数据!
手机央视新闻为什么要预约
什么是广告标语
多玩传奇永恒永恒传奇魔龙门怎么走
天龙八部上古技能书
cos大乱斗专注可以打破技能免疫吗?
起明家私城地址在哪,我要去那里办事
新乡医学院三全学院大一下学期能不能考四级
不吹不黑,仁王,是我近几年觉得最好玩的游戏
我在加拿大 被蚊子咬了 然后就肿了起来 红色
临海转运中心到淮南转运中心要多久
推荐资讯
有人说亲妈养后妈养的是什么意思
看破红尘一张纸,莫若寺院几声钟。出自何处?
巴大蝶什么性格好 巴大蝴性格及配招打法《口
国航空客A350客机成功首飞哪条航线?
帝皑缇精密设备(上海)有限公司 有能提供这
将五位志愿者分成三组,其中两组各两人,另一
有什么工资高些的。
伊利牛奶(南山路555号丰羽食品商行)地址有知
没有开花的紫金罗读后感
18000*(1-2%)
雨伞坏了怎么办
广州泰坦软件公司数字化做什么的
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?