数据结构concat(数据结构concat函数用法)
在数据结构中串的联接concat,当遇到重复的也联接吗?
所谓连接就是接起来,哪里需要考虑重复不重复,肯定是直接连接了
数据结构C语言顺序串 求高手修改,特别是concat函数,高手帮忙啊,急!!!!!!!
//给你改到可以运行了,你要实现什么功能你也没说,就这样了,你自己看看自己的算法,你在用的时候注意下大小写,在C 中是严格区分大小写的,还有就是函数在进行参数传递的时候,传的是什么。怎样传好,如果对修改有不解的地方,我们可以共同解决。
#includestdio.h
#includeconio.h
#includestdlib.h
#define MAX 100
#define FALSE 0
#define TRUE 1
#define ERROR 0
typedef struct
{
char ch[MAX];
int len;
}SqString;
void StrAssign(SqString *str )//你这定义的是*str所以下面要用str-
{
int i;char cstr[MAX];
gets(cstr);///先接收串,再对其操作
for(i=0;cstr[i]!='\0';i++)
{
str-ch[i]=cstr[i];
}
str-len=i;
}
int StrCompare(SqString S,SqString T)
{
int i;
for (i = 0; i S.leni T.len; i++)
if (S.ch[i]!=T.ch[i])
return S.ch[i]-T.ch[i];
return (S.len-T.len);
}
int StrLength(SqString S)
{
return S.len;
}
int concat(SqString S,SqString T)
{ int i,overflow;
if (S.len+T.len=MAX)
{
for(i=0;i=T.len;i++)
S.ch[S.len+i]=T.ch[i];////引用的是S中的ch中的S.len+i
S.len=S.len+T.len; overflow=FALSE;
}
else {
overflow=TRUE;
if(S.lenMAX)
for(i=0;iMAX-S.len;i++)
S.ch[S.len+i]=T.ch[i];
}
return overflow;
}
void Sqstring(SqString* sub,SqString *s,int pos,int length )///
{ int i;
if(pos1 || poss-len || s-len0 || length+pos-1 s-len)
exit(0);
else
{ for(i=0;i=length;i++)
sub-ch[i]=s-ch[pos+i];
sub-len=length;
}
}
void Print(SqString *S)
{int i;
if(S-len0)
{for(i=0;iS-len;i++)
printf("%c",S-ch[i]);
printf("\n");}
}
void main()
{
int m,n,pos,length;
SqString S,T,sub;
printf("Please input S :");
StrAssign(S);
Print(S);
printf("Please input T :");
StrAssign(T);
Print(T);
m=StrCompare(S,T);
printf("%d\n",m);
n=StrLength(S);
printf("%d\n",n);
concat (S,T);
Print(S);
printf("Please input pos= length= \n");
scanf("%d%d",pos,length);
Sqstring(sub,S,pos,length);
Print(sub);
getch();
}
数据结构中串的CONCAT语句的问题
你没弄懂Concat()函数里面参数的意思,我觉得应该是Concat(s,t1,t2)应该是把t1和t2连接起来,然后赋值给s.具体也不怎么清楚,你应该看相应语言的文档