第八周项目3-顺序串算法

  这几个算法的实现用到了之前写的顺序串算法库!


#include<bits/stdc++.h>
#include"../顺序串算法库/shunxuchuan.h"
using namespace std;
void trans(sqstring *&s,char c1,char c2)///将串s中所有值为c1的字符换成值为c2的字符
{
    int i;
    if(s->length>0)///这个没啥好说的
    {
        for(i=0;i<s->length;i++)
            if(s->data[i]==c1)
                s->data[i]=c2;
    }
}
void daoguolai(sqstring &s)///OK
{
    int i,k;
    char te;
    if(s.length>0)
    {
        k=s.length-1;
        for(i=0;i<s.length/2;i++)///就地逆置
        {
            te=s.data[i];///经典的写法,设置一个中间变量
            s.data[i]=s.data[k];
            s.data[k]=te;
            k--;
        }
    }
}
void shanqu(sqstring &s,char c)///OK
{
    int i,j,k=0;
    if(s.length>0)
    {
        for(i=0;i<s.length;i++)
        {
            if(s.data[i]==c)
            {
                k++;///一开始忘了计数,因为字符串的长度变了
                for(j=i;j<s.length;j++)
                    s.data[j]=s.data[j+1];
            }
        }
    }
    s.length=s.length-k;
}
sqstring gonggong(sqstring s1,sqstring s2)///感觉老师的叙述比较模糊,容易让人产生误解,不知道到底怎么求子串
{
    int i,j,k=0;
    sqstring s3;
    for(i=0;i<s1.length;i++)
    {
        for(j=0;j<s2.length;j++)
            if(s1.data[i]==s2.data[j])///感觉我这样写更好看呀,当然也有可能是我写错了
            {
                s3.data[k]=s1.data[i];
                k++;
                break;
            }
    }
    s3.length=k;
    return s3;
}
int main()
{
    sqstring s,s1,s2,s3,s4;
    sqstring *t;
    char a[100],b[100],c[100];
    gets(a);
    jianchuan(s,a);
    display(s);
    t=&s;
    trans(t,'t','d');
    display(s);
    daoguolai(s);
    display(s);
    shanqu(s,'a');
    display(s);
    gets(b);
    gets(c);
    jianchuan(s1,b);
    jianchuan(s2,c);
    s3=gonggong(s1,s2);
    display(s3);
    return 0;
}


  最近在读唐诗;今天看到了一首李白的侠客行,感觉特别好,不知道金庸先生的小说侠客行是否也受这首诗的启发呢?以一首诗结尾吧。

                                    侠客行

赵客缦胡缨,吴钩霜雪明。银鞍照白马,飒沓如流星。

十步杀一人,千里不留行。事了拂衣去,深藏身与名。

闲过信陵饮,脱剑膝前横。将炙啖朱亥,持觞劝侯嬴。

三杯吐然诺,五岳倒为轻。眼花耳热后,意气素霓生。

救赵挥金锤,邯郸先震惊。千秋二壮士,烜赫大梁城。

纵死侠骨香,不惭世上英。谁能书阁下,白首太玄经。

  十步杀一人,千里不留行。千古名句,但之前还不知道这是出自于李白的诗篇!这首诗让我想起了小时候读金庸小说的快乐时光;最喜欢飞狐外传,最爱胡斐这个侠客!他没有射神倚和笑天鹿那么出名;但感觉胡斐这个人物更像诗中所描述的侠客。十步杀一人,千里不留行!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值