对于由多个字符(≥ 0)组成的字符串(例如 "http://data.biancheng.net"),数据结构单独提供了一种存储结构,称为串结构。
字符串中的字符之间具有“一对一”的逻辑关系,所以严格意义上讲,串存储结构也属于线性存储结构。和顺序表、链表、栈、队列这些线性存储结构不同的是,串存储结构专门用来存储字符串。
特殊的串
数据结构中,根据串中存储字符的数量及特点,对一些特殊的串进行了命名。
1) 空串
空串指的是未存储任何字符的串,整个串的长度为 0。
C语言中,空串可以这样表示:
const char * str = "";
双引号表示的字符串内没有任何字符,str 就是一个空串。
2) 空格串
空格串指的是由多个(>0)空格字符组成的串结构,整个串的长度为包含空格字符的个数。
仍以 C 语言为例:
const char * str = " ";
str 是一个包含 5 个空格字符的空格串,它的长度为 5。
注意:空格串和空串不同,空串中不含任何字符,而空格串中含有的是空格字符。
3) 子串和主串
假设有以下两个串 A 和 B:
A:shujujiegou
B:shuju
在