当前位置: 首页 > news >正文

数据结构4.0——串的定义和基本操作

串的定义(逻辑结构)

,即字符串(String)是由零个或多个字符组成的有序数列。

一般记为S='a1a2....an'(n>=0)

其中,S是串名,单引号括起来的字符序列是串的值;ai可以是字母、数字或其他字符;串中字符的个数n称为串的长度。n=0时的串称为空串\o(用\varnothing表示)

例如:

S="HelloWorld!"

T="IPhone 11 Pro Max?"

子串:串中任意个连续的字符组成的子序列。例:"IPhone 11"是T的子串

主串:包含子串的串。例:T是子串"IPhone 11"的主串

字符在主串中的位置:字符在串中的序号。例:"1"在T中的位置是8(第一次出现)

子串在主串中的位置:子串的第一个字符在主串中的位置。例:"11Pro"在T中的位置是8

空串:M='';

空格字符串:N='   ';

M是一个空串,N是由三个空格组成的字符串

串是一种特殊的线性标,数据元素之间呈线性关系

串的数据对象限定为字符集(如中文字符、英文字符、数字字符、标点字符等) 串的基本操作,如增删改查通常以子串为操作对象

串的基本操作(运算)

假设有串T="",S="IPhone 11 Pro Max?",W="Pro"

StrAssign(&T,chars):赋值操作。把串T赋值为chars。

StrCopy(&T,S):复制操作。由串S复制得到串T。

StrEmpty(S):判空操作。若S为空串,则返回TRUE,否则返回FALSE。

StrLength(S):求串长。返回串S的元素个数。

ClearString(&S):清空操作。将S清为空串。

DestroyString(&S):销毁串。将串S销毁(回收存储空间)

Concat(&T,S1,S2):串联接。用T返回由S1和S2联接成的新串。

Eg:执行基本操作Concat(&T,S,W)后,T="S="IPhone 11 Pro Max?Pro"

SubString(&Sub,S,pos,len):求子串。用Sub返回串S的第pos个字符起长度为len的子串。

Eg:执行基本操作SubString(&T,S,4,6)后,T="one 11"

Index(S,T):定位操作。若主串S中存在与串T值相同的子串,则返回它在主串S中第一次出现的位置;否则函数值为0

Eg:执行基本操作Index(S,W)后,返回值为11

StrCompare(S,T):比较操作。若S>T,则返回值>0;若S<T,则返回值<0;(对二进制进行比较)

长串的前缀与短串相同时,长串更大

只有两个串完全相同时,才相等。

总结:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ConditionalOnResource注解使用介绍、应用场景以及示例代码
  • element如何实现自定义表头?
  • 图论基础概念(详细讲解)
  • 保证 WebSocket 连接之前的身份验证过程的安全性
  • 《A++ 敏捷开发》- 10 二八原则
  • go语言处理特定格式的时间 例如打印出来2024-07-12 12:22:22 -2024-07-12 12:52:22
  • 【Linux网络】数据链路层【下】{MAC/MTU/ARP/ICMP/NAT/PING/代理服务器原理}
  • MFC常用数据类型类:CRect
  • [论文笔记]涨点近5%! 以内容中心的检索增强生成可扩展的级联框架:Pistis-RAG
  • Python函数 之 匿名函数
  • 目前分布式光纤测温系统的主流架构有哪些?
  • MyBatis(35)如何在 MyBatis 中实现软删除
  • 初识影刀:EXCEL根据部门筛选低值易耗品
  • 【算法】代码随想录之链表(更新中)
  • std::filesystem::current_path().generic_string()的bug
  • gulp 教程
  • Java|序列化异常StreamCorruptedException的解决方法
  • java8-模拟hadoop
  • React组件设计模式(一)
  • 分享一份非常强势的Android面试题
  • 前端临床手札——文件上传
  • 协程
  • 学习使用ExpressJS 4.0中的新Router
  • 用mpvue开发微信小程序
  • 1.Ext JS 建立web开发工程
  • ​字​节​一​面​
  • # SpringBoot 如何让指定的Bean先加载
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • $.proxy和$.extend
  • (003)SlickEdit Unity的补全
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (万字长文)Spring的核心知识尽揽其中
  • (学习日记)2024.01.19
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .NET Framework .NET Core与 .NET 的区别
  • .Net IOC框架入门之一 Unity
  • .Net 基于MiniExcel的导入功能接口示例
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .net开发时的诡异问题,button的onclick事件无效
  • .net中应用SQL缓存(实例使用)
  • @31省区市高考时间表来了,祝考试成功
  • @Validated和@Valid校验参数区别
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [15] 使用Opencv_CUDA 模块实现基本计算机视觉程序
  • [Android] Android ActivityManager
  • [APIO2015]巴厘岛的雕塑
  • [BUAA软工]第一次博客作业---阅读《构建之法》