【问题描述】
实现串的顺序表示和基本操作。
【输入形式】
第一行输入一个字符串;
第二行输入一个字符串;
第三行输入两个整数,分别表示在第一个字符串中获取子串的起始位置和长度;
【输出形式】
输出两个字符串比较的结果,若相等输出=,否则输出<>
输出子串(若子串获取不成功,输出error)
输出两个字符串的连接结果
【样例输入1】
123456
abcdefg
3 4
【样例输出1】
<>
3456
123456abcdefg
【样例输入2】
ABC
ABC
3 4
【样例输出1】
=
error
ABCABC
串:是由零个或多个任意字符组成的有限序列。一般记为:s="a1 a2 ··· an"
其中s是串名;双引号作为串的界定符,括起来的字符序列为串值。
子串:串中任意连续字符组成的子序列称为该串的子串。(长度为n的串有[n(n+1)/2]+1个子串)。
主串:包含子串的串称为主串;
串相等:当且仅当两个串的长度相等,且对应位置上的字符都相同。
串的表示和实现:
与线性表类似:串也可以利用顺序存储结构或链式结构进行表示。
串的顺序存储表示:
串的初始化:
int initString(SqString *s)
{
s->data=(char*)malloc(MAXSIZE*sizeof(char)); //申请串的初始存储空间
if(!s->data) //申请失败返回0
return 0;
s->length=0; //设置串长度为0