顺序串的一个问题
如下代码::#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
typedef struct
{
char *ch;
int length;
}SqString;
void InitStr(SqString &S)
{
S.ch=NULL;
S.length=0;
}
int StrAssign (SqString &T,char *chars) //生成一个其值等于串常量chars的串T
{
int i,j;
char *c;
if(T.ch)
free (T.ch); //释放T原有空间
for(i=0,c=chars;c;i++,c++); //求chars的长度i
if(!i)
{
T.ch=NULL;
T.length=0;
}
else
{
if(!(T.ch=(char *)malloc(i*sizeof(char))))
exit (-1);
for(j=0;j<i;j++)
T.ch[j]=chars[j];
T.length=i;
}
return 1;
} //StrAssign
void DispStr(SqString S)
{
int i;
if(S.length>0)
{
for(i=0;i<S.length;i++)
printf("%c",S.ch[i]);
printf("\n");
}
} //DispStr
void main()
{
SqString S;
char *string="abcdefhhefghijklmn";
InitStr(S);
printf("结果输出为: %d\n",StrAssign(S,string));
printf("字符串长度为: %d\n",S.length);
DispStr(S);
getchar();
}
没结果输出,关键在于int StrAssign (SqString &T,char *chars) //生成一个其值等于串常量chars的串T
这个函数有问题,这个函数是 严蔚敏 书上的给的代码啊,求解释。。。。。。。。