顺序串替换【C语言】

顺序串替换【C语言】

题目:

__编写一个函数将顺序串s1中的第I个字符第J个字符之间的字符用顺序串s2串代替。
__

时间复杂度为任意空间复杂度为任意
代码:
/*3-3*/
#include <stdio.h>
#include <stdlib.h>
#define size 40
int num=0;
typedef struct
{
    char ch[size];
    int len;
}Seqstring;
void Create(Seqstring *S)
{
    int i;
    for(i=0;i<S->len;i++)
    {
        scanf(" %c",&S->ch[i]);
    }
}
void view(Seqstring S)
{
    if(S.len==0)
    {
        printf("该串为:空\n");
        return;
    }
    printf("该串为:");
    int i=0;
    for(i=0;i<S.len;i++)
    {
        printf("%c",S.ch[i]);
    }
    printf("\n");
}
void Replace(Seqstring *S,Seqstring *s,int i,int j)
{
    if(j-i+1!=s->len)
    {
        return;
    }
    int t;
    int k=0;
    for(t=i;t<=j;t++)
    {
        S->ch[t]=s->ch[k];
        k++;
    }
}
int main()
{
    Seqstring s1;
    printf("请您输入--串s1的长度:\n");
    scanf(" %d",&num);
    s1.len=num;
    printf("请您输入--串s1\n");
    Create(&s1);
    view(s1);
    Seqstring s2;
    printf("请您输入--串s2的长度:\n");
    scanf(" %d",&num);
    s2.len=num;
    printf("请您输入--串s2\n");
    Create(&s2);
    view(s2);
    printf("开始进行替换...\n");
    printf("请您输入--开始替换的字符位置:\n");
    int I;scanf("%d",&I);
    printf("请您输入--结束替换的字符位置:\n");
    int J;scanf("%d",&J);
    Replace(&s1,&s2,I-1,J-1);
    printf("显示s1:\n");
    view(s1);
    printf("hello world!\n");
    return 0;
}

运行情况:
请您输入--串s1的长度:
5
请您输入--串s1
abcde
该串为:abcde
请您输入--串s2的长度:
2
请您输入--串s2
xx
该串为:xx
开始进行替换...
请您输入--开始替换的字符位置:
1
请您输入--结束替换的字符位置:
2
显示s1:
该串为:xxcde
hello world!
Program ended with exit code: 0
Copyright © 2019 wyq. All rights reserved.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值