4.2串的存储结构 串的顺序存储结构 串的顺序存储结构就是用一个字符类型的数组存放串 的所有字符,此时,表示串的长度的方法有两种: 一种方法是设置一个串的长度参数,此种方法的 优点是便于在算法中用长度参数控制循环过程 另一种方法是在串值的末尾添加结束标记,此种 方法的优点是便于系统自动实现
4.2 串的存储结构 1、串的顺序存储结构 串的顺序存储结构就是用一个字符类型的数组存放串 的所有字符,此时,表示串的长度的方法有两种: 一种方法是设置一个串的长度参数,此种方法的 优点是便于在算法中用长度参数控制循环过程 另一种方法是在串值的末尾添加结束标记,此种 方法的优点是便于系统自动实现
而由于不同的内存分配方式定义的数组决定了串的顺 序存储结构也有两种: (1)静态数组结构:用静态内存分配方法定义的数组。由 于此时数组元素的个数是在编译是确定的,在运行时是不 可改变的,所以也称为定长数组结构。 其类成员变量包括: typedefstruct char str MaxSize] int length 3 String
(1)静态数组结构:用静态内存分配方法定义的数组。由 于此时数组元素的个数是在编译是确定的,在运行时是不 可改变的,所以也称为定长数组结构。 其类成员变量包括: typedefstruct { charstr[MaxSize]; int length; } String; 而由于不同的内存分配方式定义的数组决定了串的顺 序存储结构也有两种:
(2)动态数组结构:用动态内存分配方法定义的数组。此时 数组元素的个数是在用户申请动态数组空间时才确定的因 此,动态数组结构体定义中要增加一个指出动态数组个数 的城。 typedefstruct char *str int maxEnt int length 3 STring, 其中,str指向动态数组的首地址, maxLength表示动态数 组的最大个数, length表示串的当前长度,必须满足 ength ≤ maxLength
(2)动态数组结构:用动态内存分配方法定义的数组。此时 数组元素的个数是在用户申请动态数组空间时才确定的,因 此,动态数组结构体定义中要增加一个指出动态数组个数 的域。 typedefstruct { char *str; int maxLength; int length; } DString; 其中,str指向动态数组的首地址, maxLength表示动态数 组的最大个数, length表示串的当前长度,必须满足length ≤ maxLength