第15周 oj (FINAL)Problem M: 字符串的修改(串)

问题及代码:

/*Copyright(c)2016,烟台大学计算机学院 all rights reserved.
作者:曹欣宇
指导教师:贺利坚
完成日期:2016年12月12日
题目描述
  一个字符串s、一个字符串t,判断t是否是s的子串,
  若是则将s中所有出现了t串的地方换成指定的字符或字符串p,若不是,则输出NO
输入
  一个字符串s、一个字符串t,要换的字符或字符串
输出
  输出修改后的s串
样例输入
  asdfasdf
  132
  saf
样例输出
  NO
  */
#include <stdio.h>
#include <string.h>

int main()
{
    int i=0,j,p=0,u=0,o,g,x,d;
    char a[80],b[80],c[80];
    gets(a);
    gets(b);
    gets(c);
    while(a[i]!='\0')
    {
        x=1;
        o=i;
        for(j=0;j<strlen(b);j++)
        {
            if(a[i]==b[j])
            p++;
           i++;
        }
        i=o;
        if(p==strlen(b))
        {
            u=1;
            j=0;
            if(strlen(b)==strlen(c))
              for(j=0;j<strlen(b);j++)
            {
                a[i]=c[j];
                i++;
            }
            else if(strlen(b)>strlen(c))
            for(j=0;j<strlen(a);j++)
            {
                if(x)
                for(g=0;g<strlen(c);g++)
                {
                    a[i]=c[g];
                    i++;
                    x=0;
                    j=g;
                }
                a[i]=a[i+strlen(b)-strlen(c)];
                i++;
            }
            else if(strlen(b)<strlen(c))
            for(j=0;j<strlen(c);j++)
            {
                d=strlen(c)-strlen(b);
                if(x)
                for(g=strlen(a);g>i+d;g--)
                {
                    a[g+1]=a[g];
                    x=0;
                }
                a[i]=c[j];
                i++;
            }
        }
        p=0;
        i=o;
        i++;
    }
    if(u)
    printf("%s", a);
    else
    printf("NO\n");
    return 0;
}

运行结果:

知识点总结:.......

学习心得:最后一个题果然难啊,努力了半天编不出来....代码是参考的同学的(变量设的就不想看...).....功力不够啊.....

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值