设串采用静态数组存储结构,编写函数实现串的替换Replace(S,star,T,V),

来源:百度知道 编辑:UC知道 时间:2024/05/05 18:18:55
即要求主串S中,从位置star开始查找是否存在子串。若主串S中存在子串T,怎用子串V替换子串T,且函数返回1;若主串S中不存在子串,则函数返回0.并要求设计出函数进行测试。
请用数据结构(c语言)

#include <stdio.h>
#include <string.h>
Replace(char *S,int start,char *T,char *V)//子串V去替换子串T
{
int i,j,k,l,n,m,s,count=0,signal=0;
n=strlen(T);//求字符串长度
m=strlen(V);
s=strlen(S);
for(i=start-1;S[i]!='\0';i++)//开始查找
{ k=i;
j=0;
while(S[k]==T[j])//与子串T对比
{
k++;
j++;
}
if(T[j]=='\0')//判断是否T存在
{
if(m-n>0)//第一种情况,字符串V比T长的情况下
{
for(l=s+(m-n)*(count+1)-1;l>=k;l--)
S[l]=S[l-m+n];
for(l=k-n,j=0;j<m;l++,j++)
S[l]=V[j];
count++;
}
else if(m-n<0)//第二种情况,字符串V比T短的情况下
{
for(l=k-n,j=0;j<m;l++,j++)
S[l]=V[j];
for(;l<s+(m-n)*(count+1);l++)
S[l]=S[l+n-m];
count++;
}
else//第三种情况,T和V一样长
{
for(l=k-1;l>=k-n;l--,j--)
S[l]=V[j-1];
}
signal=1;
}

采用单链表作存储结构,编写一个程序采用选择排序方法进行升序排序 若x,y是两个采用顺序结构存储的事,编写一个比较两个串是否相等函数 若S1和S2是两个采用顺序存储结构的串,编写一个比较两个串是否相等的函数??????????? 自动数组,静态存储数组,外部存储数组之间的区别是什么? 设二叉树以二叉链表为存储结构,编写一个后续遍历二叉树的非递归算法 C语言初始化数组时,一定要使用静态存储吗? 利用数组建立该线性表的顺序存储结构 设一维数组中已经存储一组数据,编写程序将数组循环右移k位 静态数组与动态数组 字符串的顺序存储结构简称为顺序串,是指采用一组地址连续的存储单元依次存放串值中的各个字符,