数据结构:细讲串的定义和基本操作

举报
高彬滔 发表于 2023/05/10 10:55:57 2023/05/10
【摘要】 什么是串?羊肉串?牛肉串?当然不是!!!串,即字符串(String)是由零个或者多个字符组成的有序列。可以是字母、数字或者其他字符。1.串的定义可以是字母、数字或者其他字符。eg:这些都叫做串S=“HelloWorld!” //长度n=11A='frighti ng' //长度n=10 因为空格也是一种字符其中串也有它的长度,当串的长度为零的时候叫空串,1.1 常见的术语字串:串中任...
什么是串?羊肉串?牛肉串?当然不是!!!串,即字符串(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 串是特殊的线性表

串是一种特殊的线性表,数据元素之间呈线性关系。串的增删改查一般以子串为操作对象

image.png

串的数据对象限定为字符集如:

  • 中文字符
  • 英文字符
  • 数字字符
  • 标点字符等

2.1 串的基本操作

设有串T=“”, S=“He llo!”, W="llo"

  • StrAssign(&T,chars):赋值操作。把串T赋值为chars
  • StrCopy(&T,S):复制操作。由串S复制得到串T
  • StrEmpty(S):判空操作,若S为空串,则返回true,反之为false
  • StrLength(&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

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。