字符串
天下维客,你可以修改的网络知识库
字符串或串(String)是由零个或多个字符组成的有限序列。一般记为 s='a1a2...an'(n>=0)。它是编程语言中表示文本的数据类型。
通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。
[编辑]
编程语言中的表示法
一种常用的表示法是使用一个字符代码的数组,每个字符占用一个字节(如在ASCII代码中)或两个字节(如在unicode中)。它的长度可以使用一个结束符(一般是NUL,ASCII代码是0,在C编程语言中使用这种方法)。或者在前面加入一个整数值来表示它的长度(在Pascal语言中使用这种方法)。
这是一个用NUL结束的字符串的例子,它用10个byte存储,用ASCII表示法:
| F | R | A | N | K | k | f | f | w | |
| 46 | 52 | 41 | 4E | 4B | 00 | 6B | 66 | 66 | 77 |
上面的字符串的长度为5个字符,但注意它占用6个字节。结束符后的字符没有任何意义。
这是相同的Pascal字符串:
| F | R | A | N | K | k | f | f | w | |
| 05 | 46 | 52 | 41 | 4E | 4B | 6B | 66 | 66 | 77 |
当然,可能还有其它的表示法。使用树和列表可以使得一些字符串操作(如插入和删除)更高效。


