//结构体
typedef int Status;
typedef struct
{
char *ch;
int length;
}HString;
//以串存储一个字符数组
Status StrAssign(HString &T, char *chars)
{
int i;
int len = strlen(chars);
if (!len) //初始化
{
T.ch = NULL;
T.length = 0;
}
else
{
if (!(T.ch = (char*)malloc(100 * sizeof(char))))
exit(0);
for (i = 0; i < len; i++)
T.ch[i] = chars[i];
T.length = len;
}
return 1;
}
//在串S的第 pos 个字符前插入串T
Status StrInsert(HString &S, int pos, HString T)
{
if (pos<1 || pos>S.length + 1)
return 0;
if (T.length)
{
if (!(S.ch = (char *)realloc(S.ch, (S.length + T.length) * sizeof(char))))
exit(0);
for (int i = S.length - 1; i >= pos - 1; --i)
S.ch[i + T.length] = S.ch[i];
for (int i = 0; i < T.length; i++)
S.ch[pos - 1 + i] = T.ch[i];
S.length += T.length;
}
return 1;
}
//联结