对于串的基本操作集可以有不同的定义方法,读者在使用高级程序设计语言中的串类型时,应以该语言的参考手册为准。但在上述抽象数据类型定义的13种操作中,串赋值StrAssign、串复制StrCopy、串比较StrCompare、求串长StrLength、串联接Concat以及求子串SubString等6种操作构成串类型的最小操作子集。

  例如,可利用判等、求串长和求子串等操作实现串的定位函数 Index(S,T,pos) 和串的置换操作 Replace(S,T,V)。
 
 
  换句话说,如果在高级程序设计语言中设有"串类型"的话,提供的基本操作不能没有这6种操作,因为它们不能通过其它串操作实现。
 
  算法4.1
  int Index (String S, String T, int pos)
 {
  // T为非空串。若主串S中第 pos 个字符之后存在与T相等的子串,
  // 则返回第一个这样的子串在S中的位置,否则返回0。

  if (pos > 0) {
   n = StrLength(S); m = StrLength(T); // 求得串长
   i = pos;
   while ( i <= n-m+1) {
    SubString (sub, S, i, m); // 取得从第 i 个字符起长度为 m 的子串
    if (StrCompare(sub,T) != 0) ++i ;
    else return i ;     // 找到和 T 相等的子串
   } // while
  } // if
  return 0;          // S 中不存在满足条件的子串
 } // Index
    实现Index(S,T,pos)算法的基本思想为:从主串S中取"第 i 个字符起、长度和串T相等的子串"和串T比较,若相等,则求得函数值为 i,否则 i 值增1直至找到和串T相等的子串或者串S中不存在和T相等的子串为止。即求使下列等式
StrCompare(SubString(S,i,StrLength(T)),T)==0
成立的 i 值。i 的初值应为 pos,在找不到的情况下,i 的终值应该是 n-m+1,其中,n 为S串的长度,m 为T串的长度。动画