C语言实现串的部分算法

一、简介

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

s='a1a2....an'

s为串的名,用单引号括起来的时字符序列串的值,串中字符的数目n称为串的长度。

零个字符的串称为空串。

二、代码实现

//串的模式匹配算法

//1.求字串位置的定位函数
int Index(char S[], char T[], int pos) {
	//返回字串T在主串S中第pos个字符之后的位置。若不存在,则函数值为0
	//T非空,1<=pos&&pos<=StrLength(S)
	int i = pos;//目标位置指向
	int j = 1;//比较指向的初始化
	while (i<=S[0]&&j<=T[0])
	{
		if (S[i] == T[j])
		{
			++i;
			j++;
		}
		else
		{
			i = i - j + 2;
			j = 1;
		}
		if (j > T[0])return i - T[0];
		else return 0;
	}
}//Index

//next函数值算法
void get_Nezt(char T[],int next[]) {
	//求模式T的next函数值并存入数组next
	int i = 1;
	next[1] = 0;
	int j = 0;
	while (i

你可能感兴趣的:(c语言,算法,数据结构,学习)