堆串的应用

比如串S1=“Welcome to”,S2="China",Sub="Xi'an",将串S2连接到串S1末尾,然后将串S1中的S2用Sub替换。
#include <stdio.h>  
#include <stdlib.h>  
#include <string.h>  
  
typedef struct  
{  
    char *str;  
    int length;  
}HeapString;  
  
void InitString(HeapString *S);//串的初始化操作  
void StrAssign(HeapString *S,char cstr[]);//串的赋值操作  
int StrEmpty(HeapString S);//推断串是否为空  
int StrLength(HeapString S);//求串的长度操作  
void StrCopy(HeapString *T,HeapString S);//串的复制操作  
int StrCompare(HeapString S,HeapString T);//串的比較操作  
int StrInsert(HeapString *S,int pos,HeapString T);//串的插入操作  
int StrDelete(HeapString *S,int pos,int len);//串的删除操作  
int StrConcat(HeapString *T,HeapString S);//串的连接操作  
int SubString(HeapString *Sub,HeapString S,int poos,int len);//截取子串操作  
int StrReplace(HeapString *S,HeapString T,HeapString V);//串的替换操作  
int StrIndex(HeapString S,int pos,HeapString T);//串的定位操作  
void StrClear(HeapString *S);//清空串操作  
void StrDestory(HeapString *S);//摧毁串操作  
void StrPrint(HeapString S);//串的输出声明 


#include "HeapString.h"  
  
void InitString(HeapString *S)  
{  
    S->length = 0;  
    S->str = '