D20. 学习基础C、C++语言

D20. 字串题练习

这题是之前老师出的题目但是我一直解不出来,後来看很久,还跑去问同学才解出来的,因为字串这部分我之前都搞不懂
https://ithelp.ithome.com.tw/upload/images/20211231/201436277h1e8aFsQn.jpg

#include<stdio.h>
#include<stdlib.h>
int l_word,l_rp,l_str;
char hold[300];
int change;
void check(char word[60],char rp[60],char str[300])
{
    change=0;
    int pword;
    int r;
    int d= l_word-l_rp;
    for(int i=0; str[i]!=0; i++)
    {
        pword=0;
        r=0;
        for(int k=i; k<i+l_word; k++,pword++)
        {
            if(str[k]!=word[pword])
                break;
        }
        if(pword==l_word)
        {

            l_str-=d;
            hold[l_str]=0;
            for(int forward=0; forward<i; forward++)
                hold[forward]=str[forward];

            for(int mid=i,prp=0; mid<i+l_rp; mid++,prp++)
                hold[mid]=rp[prp];

            for(int back=i+l_rp,pstr=i+l_word; back<l_str; back++,pstr++)
                hold[back]=str[pstr];

            change=1;
            r=1;
        }
        if(r)
        {
            for(int s=0; hold[s]!=0; s++)
                str[s]=hold[s];
            str[l_str]=0;
        }
    }
}
int main()
{
    char word[60],rp[60],str[300];
    while(gets(word))
    {
        if(word[0]=='*')
            break;
        change=1;
        gets(rp);
        gets(str);
        for(l_word=0; word[l_word]!=0; l_word++) {}
        for(l_rp=0; rp[l_rp]!=0; l_rp++) {}
        for(l_str=0; str[l_str]!=0; l_str++) {}
        while(change)
        {
            check(word,rp,str);
        }
        puts(str);
    }
    return 0;
}

<<:  django新手村11-----缓存

>>:  30天程序语言研究

Day 0x9 - 插播 - 建立 Sinopac Controller

0x1 前言 是的,要继续写 Webhook 时却发现,Day 0x4 ~ 0x6 写的函数的都没有...

Day35 ( 游戏设计 ) 猜数字 ( 几 A 几 B )

猜数字 ( 几 A 几 B ) 教学原文参考:猜数字 ( 几 A 几 B ) 这篇文章会介绍,如何在...

Day24 - 回到预览页

今天要做的是从悬浮视窗还到预览页。 在Day22中当我们启动ObserveService时会把Mai...

[DAY 28] 回传 Gazebo 当中机器人之座标

前言 大家好,介绍完笔者团队的控制自走车研究後,今天我们则要来介绍如何在 Gazebo 世界中取得我...

DAY15 - 利用 firebase 的 Authentication 建立会员系统与页面串接

什麽是 firebase 的 Authentication firebase 还有一项强大的服务是 ...