/*
*Copyright (c) 2015,烟台大学计算机学院
*All rights reserved.
*文件名称:shunxuchuan.cpp
*作者:朱希康
*完成日期:2015年10月30日
*版本号:vc++6.0
*
*问题描述:建立顺序串算法库
*输入描述:无
*程序输出:子串,串连接,串删除,串插入等
*/
#ifndef HEAD_H_INCLUDED
#define HEAD_H_INCLUDED
#include <malloc.h>
#include<stdio.h>
typedef struct snode
{
char data;
struct snode *next;
}LiString;
void StrAssign(LiString *&s,char cstr[]); //字符串常量cstr赋给串s
void StrCopy(LiString *&s,LiString *t); //串t复制给串s
bool StrEqual(LiString *s,LiString *t); //判串相等
int StrLength(LiString *s); //求串长
LiString *Concat(LiString *s,LiString *t); //串连接
LiString *SubStr(LiString *s,int i,int j); //求子串
LiString *InsStr(LiString *s,int i,LiString *t) ; //串插入
LiString *DelStr(LiString *s,int i,int j); //串删去
LiString *RepStr(LiString *s,int i,int j,LiString *t); //串替换
void DispStr(LiString *s); //输出串
#endif // HEAD_H_INCLUDED
#include <stdio.h>
#include "head.h"
int main()
{
LiString *s,*s1,*s2,*s3,*s4;
printf("链串的基本运算如下:\n");
printf(" (1)建立串s和串s1\n");
StrAssign(s,"abcdefghijklmn");
printf(" (2)输出串s:");
DispStr(s);
StrAssign(s1,"123");
printf(" (2)输出串s1:");
DispStr(s1);
printf(" (3)串s的长度:%d\n",StrLength(s));
printf(" (4)在串s的第9个字符位置插入串s1而产生串s2\n");
s2=InsStr(s,9,s1);
printf(" (5)输出串s2:");
DispStr(s2);
printf(" (6)删除串s第2个字