字符串简称串,计算机的非数值处理的对象基本都是字符串对象。串是由零个或多个字符组成的有限序列。
串中任意个连续字符组成的子序列称为该串的子串,包含子串的串相应的称为主串。
某个字符在串中的序号称为串的该字符在串中的位置。子串在主串中的位置以子串的第一个字符在主串中的位置来表示。
当两个串的长度相等且每个对应位置的字符都相等时,称这两个串是相等的
由一个或多个空格组成的串称为空格串,其长度为串中空格字符的个数。
串的逻辑结构和线性表极为相似,区别仅在于串的数据对象限定为字符集。在基本操作上,串和线性表有很大差别。线性表的基本操作主要以单个元素作为操作对象,如查找,插入或删除某个元素等;而串的操作通常以子串作为操作对象,如查找,插入或删除一个子串等
实际上,在Java中有一个专门的String类用于对字符串的操作,而C语言中没有字符串类型,字符串是存放在字符型数组中的,将字符串作为字符数组来处理的。为了测定字符串的实际长度,C语言规定了一个“字符串结束标志”,以字符’\0’作为结束标志 。
串有三种存储方式
1.定长顺序存储表示与堆分配存储表示
//串的定长顺序存储表示
#define MAXLEN 255
typedef struct{
char ch[MAXLEN];//创建一个字符数组存储串,每个分量存储一个字符,类似顺序表的静态分配
int lengt