串类型的定义
typedef struct { //定义串
char *ch;
int length; //串长度
}HString;
串的初始化
int StrAssign(HString &T,char *chars)
{
printf("初始化中...");
int i ;
char *c;
if(T.ch) free(T.ch); //释放T原来空间
for(i=0,c = chars;*c!='\0';++c)//求chars的长度i
++i;
T.length = i;//将长度赋值得串的长度
if(!i){ //串长度为0
T.ch = NULL ;
}
else{
T.ch = (char *)malloc(i*sizeof(char));//分配内存
if(!T.ch) //如果分配内存失败
exit(0); //如果分配内存失败,退出程序
else{
for(int j=0;j<i;j++)
T.ch[j] = chars[j];
}
}
printf("\n初始化成功\n");
return 0;
}