| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 560 人关注过本帖
标题:关于串的操作代码的疑惑? 在线求等高手解答,问题一二在代码注解后
只看楼主 加入收藏
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
结帖率:95.65%
收藏
 问题点数:0 回复次数:7 
关于串的操作代码的疑惑? 在线求等高手解答,问题一二在代码注解后
int StrInsert(SeqString *S,int pos,SeqString T)
/*串的插入操作。在S中第pos个位置插入T分为三种情况*/
{
    int i;
    if(pos<0||pos-1>S->length)         /*插入位置不正确,返回0*/         //问题一:为什么这不是pos>S->length,而是还要减一?
    {
        printf("插入位置不正确");
        return 0;
    }
    if(S->length+T.length<=MaxLength)            /*第一种情况,插入子串后串长≤MaxLength,即子串T完整地插入到串S中*/
    {
        /*在插入子串T前,将S中pos后的字符向后移动len个位置*/
        for(i=S->length+T.length-1;i>=pos+T.length-1;i--)
            S->str[i]=S->str[i-T.length];
        /*将串插入到S中*/
        for(i=0;i<T.length;i++)
            S->str[pos+i-1]=T.str[i];
        S->length=S->length+T.length;
        return 1;
    }
    /*第二种情况,子串可以完全插入到S中,但是S中的字符将会被截掉*/
    else if(pos+T.length<=MaxLength)                       
    {
        for(i=MaxLength-1;i>T.length+pos-1;i--)    /*将S中pos以后的字符整体移动到数组的最后*/    问题2://如何确定是i>T.length+pos-1;,和S->str[i]=S->str[i-T.length]?.
            S->str[i]=S->str[i-T.length];
        for(i=0;i<T.length;i++)                    /*将T插入到S中*/
            S->str[i+pos-1]=T.str[i];
        S->length=MaxLength;
        return 0;
    }
    /*第三种情况,子串T不能被完全插入到S中,T中将会有字符被舍弃*/
    else
    {
        for(i=0;i<MaxLength-pos;i++)            /*将T直接插入到S中,插入之前不需要移动S中的字符*/
            S->str[i+pos-1]=T.str[i];
        S->length=MaxLength;
        return 0;
    }
}
搜索更多相关主题的帖子: 移动 return 在线 
2011-11-04 16:22
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:0 
hlep me,please

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-11-04 16:25
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:0 
help

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-11-04 16:26
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:0 
can you help me

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-11-04 16:31
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:0 
高手。。。。。。。。。。。。。。。。。

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-11-04 16:48
fourleaves
Rank: 2
等 级:论坛游民
帖 子:194
专家分:99
注 册:2010-5-8
收藏
得分:0 
顶啊

再复杂的问题也基于最简单的原理。耐心,耐心!丰富自己!等待时机!
2011-11-04 16:50
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
这个算法似乎过于复杂了,不用这样做的。

授人以渔,不授人以鱼。
2011-11-04 17:25
luchar
Rank: 9Rank: 9Rank: 9
来 自:南京
等 级:蜘蛛侠
帖 子:279
专家分:1263
注 册:2011-11-3
收藏
得分:0 
问题一,因为数组的首项是0,所以第n项要n-1。
问题二,(i=MaxLength-1;i>T.length+pos-1;i--),这里不是给定了i的值,而T.length+pos-1也是给定了,当然就能进行比较了。而 S->str[i]=S->str[i-T.length];这个是把T插入S的操作。
2011-11-04 21:44
快速回复:关于串的操作代码的疑惑? 在线求等高手解答,问题一二在代码注解后
数据加载中...
 
   



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

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