串的插入C语言实现 大虾帮我改改实在不知道是什么问题 越详细越好

来源:百度知道 编辑:UC知道 时间:2024/05/24 02:42:58
#include "stdio.h"
#include "alloc.h"
#define MAX 50
typedef struct string{
char ch[MAX];
int len;
}SString;
StrInsert(SString *s,int pos,SString t)
SString *s,t;
int pos;
{
int i;
for(i=s->len+t.len-1;i>=t.len+pos;i--)
s->ch[i]=s->ch[i-t.len];
for(i=0;i<t.len;i++)
s->ch[i+pos]=t.ch[i];
s->len=s->len+t.len;
}
void main()
{

int k,i;
s->[]="abcdef";
t.[]="UVW";
printf("input k:");
sanf("%d",&k);
StrInsert(s,k,t);
for(i=0;i<=MAX;i++)
printf("%c ",s->ch[i]);
}


StrInsert(SString *s,int pos,SString t)
SString *s,t;
int pos;
这个函数定义实在是费力不讨好
改成
void StrInsert(SString *s,int pos,SString t)
{
int i;
for(i=s->len+t.len-1;i>=t.len+pos;i--)
s->ch[i]=s->ch[i-t.len];
for(i=0;i<t.len;i++)
s->ch[i+pos]=t.ch[i];
s->len=s->len+t.len;
}
要是有逻辑错误自己找