数据结构串比较
void InitSTring(HString &T)
{
T.ch = NULL;
T.length = NULL;
}
Status StrAssign(HString &T,char *chars)
{
int i;
char *c;
if(T.ch) free(T.ch);
for(i = 0,c = chars;*c;++i,++c);//chars首地址赋给c,循环计算串长度
if(!i)
{
T.ch = NULL;
T.length = 0;
return ERROR;
}
else
{
if(!(T.ch = (char *)malloc(i*sizeof(char))))
exit(OVERFLOW);
for(int j=0; j < i; j++)
{
T.ch[j] = chars[j];
}
T.length = i;
}
return OK;
}
Status Traverse(HString T)
{
int i;
for(i = 0; i < T.length; i++)
{
printf("%c",T.ch[i]);
}
printf("\n");
return OK;
}
Status StrLength(HString S)
{
return S.length;
}
Status StrCompare(HString S,HString T)
{
int i;
for(i = 0;i < S.length && i < T.length;i++)
{
if(S.ch[i]!=T.ch[i]) return S.ch[i]-T.ch[i];
}
return S.length-T.length;
}