5.4串

5.4.1 串的定义和运算

串是由有限个字符a1,a2,a3,a4…组成的序列,记为S=“a1a2a3a4…an”

串的基本运算:
1.赋值运算(S=S1):将一个串(值)S1传送给串名S
2.求长度运算str_length(S):返回串S的长度值
3.连接运算(S1+S2):将串S1和串S2连接成为一个新串
4.求子串运算函数substr(S,i,j):返回串S中第i个元素开始的j个元素所组成的子串。
5.串比较:比较两个串的大小
(1)仅比较是否相等:

 equal(S1,S2);

(2)不仅比较是否相等,还要区分大小(比较ASCII码)

strcmp(S1,S2);

6.插入运算str_Insert(S,i,S1):将子串S1插入到串S的第I字符开始的位置上
7.插入运算str_delete(S,i,j):将子串S插入到串S的第i字符开始的j个字符

5.4.2串的存储

1.顺序串
在这里插入图片描述
2.链串
链串的每个结点>=1,结点大小为为每个结点最多存储的元素个数。

结点大小为4的链串:
在这里插入图片描述

例:比较两个结点为1 的链串S1和S2实现运算strcmp(S1,S2),并返回-1,0,1 (s1<s2 ,s1=s2,s1>s2)

int strcmp(node *S1,node *S2)
{
 node *pa=S1, *Pb=S2;
 while(pa!=null&&pb!=null)
   if(pa->data==pb->data)
   {
     pa=pa->next;
      pb=pb->next;
   }
else if(pa->data<pb->data)
   return -1;
     else return 1;
if(pa==null)
 if(pb==null)
    return-1;
    else return 0;
    else return 1;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值