什么是串?羊肉串?牛肉串?当然不是!!!串,即字符串(String)是由零个或者多个字符组成的有序列。 可以是字母、数字或者其他字符。
1.串的定义
可以是字母、数字或者其他字符。
eg:这些都叫做串
S=“HelloWorld!” //长度n=11 A='frighti ng' //长度n=10 因为空格也是一种字符
其中串也有它的长度,当串的长度为零的时候叫空串,
1.1 常见的术语
- 字串:串中任意个连续的字符组成的子序列
例如:'h','lo','!'
这些都是串S的字串,这里需要注意的是空串也是串S的字串
- 主串:就是包含子串的串
例如:'frighting'
就是A的主串
- 字符在主串出现的位置:字符在串中的序号
例如:‘n’在A中的位置为9,这里是从1开始计数的
- 子串在主串出现的位置:子串的第一个字符在主串中的位置
例如:‘ng’在A中的位置为9。原因:一般都会以字串中第一个字符为标准,由于‘n’在主串的位置为9,即‘ng’在A中的位置为9。
注意: 空串和空格串不是一个意思:例如M=‘’(其中M是空串),N=‘ ’(N是由一个空格字符组成的,所以是空格串)
1.2 串是特殊的线性表
串是一种特殊的线性表,数据元素之间呈线性关系。串的增删改查一般以子串为操作对象
串的数据对象限定为字符集如:
- 中文字符
- 英文字符
- 数字字符
- 标点字符等
2.1 串的基本操作
设有串T=“”, S=“He llo!”, W="llo"
StrAssign(&T,chars)
:赋值操作。把串T赋值为charsStrCopy(&T,S)
:复制操作。由串S复制得到串TStrEmpty(S)
:判空操作,若S为空串,则返回true,反之为falseStrLength(&S)
:求串长,返回串S的元素的个数ClearString(&S)
:清空操作。将串S清为空串DestoryString(&S)
:销毁操作。将串S销毁,并回收存储空间Concat(&T,S1,S2)
:串联接。用T返回由S1 和 S2联接而成的新串
例如:执行操作Concat(&T,S,W)后得到: T=“He llo!llo”
SubString(&Sub,S,pos,len)
:求子串,用Sub返回串S的第pos个字符起长度为len的子串
例如:执行操作SubString(&T,S,2,4)后,T=“e ll”
Index(S,T)
:定位操作。若主串S中存在子串T值相同的字串,则返回它在主串S中第一次出现的位置,否则函数值为0
例如:执行操作Index(S,W)后,返回值为4
StrCompare(S,T)
:比较操作。若S>T,则返回值>0;若S<T,则返回值<0;若S=T,返回值=0。
2.2 字符集编码
任何数据存储到计算机中一定是二进制。需要确定一个字符和二进制的对应规则,这就是编码,如utf-8