首页 > 学院 > 开发设计 > 正文

4.1串类型的定义

2019-11-14 10:33:30
字体:
来源:转载
供稿:网友

串(string)(或字符串)是用0个或多个字符组成的有限序列,一般记为

s='a1a2····an'(n>=0)

在线性表中查找某个元素、求元素个数、在某个位置上插入一个元素和删除一个元素等;

在串的基本操作中,通过以“串的整体”作为操作对象,例如在串中查找某个子串、求一个子串、在串的某个位置上插入一个子串以及删除一个子串等。

算法4.1:可利用判等、求串长和求子串等操作实现定位函数Index(S,T,pos)。

下面是代码:

int Index(String S, String T, int pos) {  	// T为非空串。若主串S中第pos个字符之后存在与T相等的子串,	// 则返回第一个这样的子串在S中的位置,否则返回0	int n, m, i;	String sub;	if (pos > 0) 	{		n = StrLength(S);		m = StrLength(T);		i = pos;		while (i <= n - m + 1) 		{			SubString(sub, S, i, m);			if (StrCompare(sub, T) == 0) 				++i;			else return i;		} // while	} // if	return 0;}

下面来分析下:

1.这里面StrLength这个函数就是求字符串长度,返回值为int型。

2.可能有人会问为什么这个while循环里面是n-m+1,而不是n-m:

举个例子,当S的长度为5,T的长度为2时,i=1时,那么5-2=3,但是要比较到S串的第4个字符才知道他到底有没有包含T串,所以要+1。

3.这里的SubString作用是,用sub返回串S的第i个字符起长度为m的子串。

4.Strcompare这个函数若sub>T则返回值>0,若sub=T返回值为0,若s<T返回指<0


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表