标题:[求助]大家看看
只看楼主
Lupkid
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-10-18
 问题点数:0 回复次数:2 
[求助]大家看看

//----串的堆分配存储--------
typedef struct{
char *ch;
int length;
}HString;
Status StrInsert(HString &S,int pos.HStirng T){
//1<=pos<=StrLength(S)+1. 在串S的第pos个字符之前插入串T.
if(pos<1||pos>S.length+1) return ERROR; //pos不合法
if(T.length){ //T非空,则重新分配空间,插入T
if(!(S.ch=(char *)realloc(S.ch,(S.length+T.length)*sizeof(char)))) exit(OVERFLOW);
for(i=S.length-1;i>=pos-1;--i) //为插入T而腾出位置
S.ch[i+T.length]=S.ch[i];

S.ch[pos-1..pos+T.length-2]=T.ch[0..T.length-1]; //插入T
S.length+=T.length;
}
return OK;
}


这句好像没用啊

搜索更多相关主题的帖子: return color 空间 
2007-10-20 11:55
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
for(i=S.length-1;i>=pos-1;--i) //为插入T而腾出位置
S.ch[i+T.length]=S.ch[i];

S.ch[pos-1..pos+T.length-2]=T.ch[0..T.length-1]; //插入T,这里也是一层循环,上面是为这个一步挪出空间的.

倚天照海花无数,流水高山心自知。
2007-10-20 12:06
Lupkid
Rank: 1
等 级:新手上路
帖 子:42
专家分:0
注 册:2007-10-18
得分:0 

我明白了,我没看清楚,原来是在S的第pos个字符前插入
谢谢

2007-10-20 12:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-179263-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.122187 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved