顺序串替换【C语言】
__编写一个函数将顺序串s1中的第I个字符到第J个字符之间的字符用顺序串s2串代替。
__
#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. |
---|