计算机上的非数值处理的对象基本上是字符串数据。串是由零个或多个字符组成的有限序列,一般记为
s='a1a2..an'
其中s是串的名,用单引号括起来的字符系序列是串的值;ai可以是字母、数字或其他字符,串中字符的数目n称为串的长度。零个字符的串称为空串。它的长度为零。
存储的时候,我们用堆存储。存储空间是在程序执行过程中动态分配而得。
首先是辅助宏的定义:
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
#define OVERFLOW -1
typedef int Status;
串的存储结构定义:
//串的堆存储结构定义
typedef struct{
char *ch;
int length;//串长度
}HString;
初始化一个空串.
Status InitString(HString &T){
//初始化一个空串
T.ch=NULL;
T.length=0;
return OK;
}
生成一个其值等于串常量chars 的串T.
Status StrAssign(HString &T,char *chars){
//生成一个其值等于串常量chars 的串T
if(T.ch) //如果T串不空 释放原有空间
free(T.ch);
int n=0,i=0;
while(