数据结构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;(对二进制进行比较)

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

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

总结:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/45611.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

unity 2020版本packManager没有AssetBundles

1.Packages->manifest.json打开manifest.json文件 2.添加"com.unity.assetbundlebrowser": "1.7.0", 保存即可

以数据编织,重构数据管理新范式

大数据产业创新服务媒体 ——聚焦数据 改变商业 人工智能几乎统一了全球最顶尖科技公司的认知&#xff1a;这个时代&#xff0c;除了AI&#xff0c;没有第二条路可走。 人工智能的技术逻辑颇有一种“暴力美学”&#xff0c;它依托于海量大数据和超高算力的训练和推理&#xff…

医疗健康信息的安全挑战与隐私保护最佳实践

医疗健康信息的安全挑战 医疗健康信息的安全挑战主要包括数据规模庞大、管理困难、数据类型多样导致的安全风险高、以及法律法规与伦理约束带来的挑战。随着医疗信息化的发展&#xff0c;医疗健康数据呈现出爆炸式的增长&#xff0c;医院信息系统、电子病历、健康管理等产生了海…

Spring Boot与MyBatis完美集成指南

Spring Boot与MyBatis完美集成指南 在当今软件开发领域&#xff0c;Spring Boot和MyBatis作为两大流行框架&#xff0c;分别以其简洁高效和灵活易用的特点&#xff0c;在快速构建和数据库交互方面展现了显著优势。本文将深入探讨Spring Boot与MyBatis的基本概念、特点、优势&a…

Xcode依赖管理大师:精通项目依赖的艺术与实践

Xcode依赖管理大师&#xff1a;精通项目依赖的艺术与实践 在现代软件开发中&#xff0c;项目依赖管理是确保项目顺利进行的关键环节。Xcode&#xff0c;作为苹果官方的集成开发环境&#xff08;IDE&#xff09;&#xff0c;提供了一套强大的工具来管理项目依赖。本文将深入探讨…

SpringBoot新手快速入门系列教程十一:基于Docker Compose部署一个最简单分布式服务项目

我的教程都是亲自测试可行才发布的&#xff0c;如果有任何问题欢迎留言或者来群里我每天都会解答。 如果您还对于Docker或者Docker Compose不甚了解&#xff0c;可以劳烦移步到我之前的教程&#xff1a; SpringBoot新手快速入门系列教程九&#xff1a;基于docker容器&#xff…

218.贪心算法:分发糖果(力扣)

核心思想 初始化每个学生的糖果数为1&#xff1a; 确保每个学生至少有一颗糖果。从左到右遍历&#xff1a; 如果当前学生的评分高于前一个学生&#xff0c;则当前学生的糖果数应比前一个学生多一颗。从右到左遍历&#xff1a; 如果当前学生的评分高于后一个学生&#xff0c;则…

Hadoop3:HDFS-通过配置黑白名单对集群进行扩缩容,并实现数据均衡(实用)

一、集群情况介绍 我的本地虚拟机&#xff0c;一共有三个节点&#xff0c;hadoop102、hadoop103、hadoop104 二、白名单 创建白名单文件whitelist&#xff0c;通过白名单的配置&#xff0c;只允许集群包含102和103两台机器可以存储数据&#xff0c;104无法存储数据。 需求 …

react学习——29react之useState使用

useState 是 React Hooks 中的一个重要函数&#xff0c;它用于在函数组件中添加状态。在类组件中&#xff0c;我们通常使用 this.state 和 this.setState 来管理组件的状态&#xff0c;而在函数组件中&#xff0c;我们可以使用 useState 来达到同样的目的。 1、导入 useState&…

C语言 判断素数

写一个判素数的函数,在主函数输入一个整数,输出是否为素数的信息。 #include <stdio.h> #include <stdbool.h>// 判断是否为素数 bool is_prime(int num) {if (num < 1) return false;for (int i 2; i < num / 2; i) {if (num % i 0) return false;}retur…

修改留言板

<!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>备忘录</title><!-- <link rel"…

Netty Websocket SpringBoot Starter

netty websocket starter Quick Start Demo 项目 添加依赖 <!--添加源--> <repository><id>github</id><url>https://maven.pkg.github.com</url><snapshots><enabled>true</enabled></snapshots> </reposit…

SchedulerLock分布式定时任务锁

1.pom中引入依赖&#xff0c;这里使用redis作为锁 <dependency><groupId>net.javacrumbs.shedlock</groupId><artifactId>shedlock-spring</artifactId><version>4.12.0</version></dependency><dependency><groupId…

根据脚手架archetype快速构建spring boot/cloud项目

1、找到archetype&#xff0c;并从私仓下载添加archetype到本地 点击IDEA的file&#xff0c;选择new project 选择maven项目&#xff0c;勾选create from archetype 填写archetype信息&#xff0c;&#xff08;repository填写私仓地址&#xff09; 2、选择自定义的脚手架arche…

关于正点原子的alpha开发板的启动函数(汇编,自己的认识)

我傻逼了&#xff0c;这里的注释还是不要用&#xff1b; 全部换成 /* */ 这里就分为两块&#xff0c;一部分是复位中断部分&#xff0c;第二部分就是IRQ部分&#xff08;中断部分最重要&#xff09; 我就围绕着两部分来展开我的认识 首先声明全局 .global_start 在 ARM 架…

数据分包:145字节版本

分包 timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2023/08/04 14:35:21 // Design Name: // Module Name: dat_send_blocks_v // Project Name: // Target Devices: // Tool Versions: // Description: // // Dependencies: // // Revisi…

pdf工具

iLovePDF | 为PDF爱好者提供的PDF文件在线处理工具 https://www.ilovepdf.com/zh-cn 图片 pdf 合并成一个pdf也可以拆分

近期matlab学习笔记,学习是一个记录,反复的过程

近期matlab学习笔记&#xff0c;学习是一个记录&#xff0c;反复的过程 matlab的mlx文件在运行的时候&#xff0c;不需要在文件夹路径下&#xff0c;也能运行&#xff0c;但是需要调用子函数时&#xff0c;就需要在文件所在路径下运行 那就先运行子函数&#xff0c;把路径换过来…

Qt: 利用QSplitter将主窗口与Docker窗口初始宽度比例2:1

要实现主窗口和 QDockWidget 之间的比例为 2:1&#xff0c;您可以使用 QSplitter 来创建一个可以调整大小的分隔窗口&#xff0c;其中一个区域放置主窗口的内容&#xff0c;另一个区域放置 QDockWidget。以下是一个示例代码&#xff0c;演示了如何实现主窗口和 QDockWidget 之间…

Power BI 工具介绍

Power BI是一款商业智能&#xff08;BI&#xff09;软件&#xff0c;由微软开发&#xff0c;旨在帮助用户将复杂的数据转化为视觉化的交互式见解。Power BI提供了一套完整的工具&#xff0c;包括数据连接、数据准备、数据建模、数据分析和数据可视化等功能&#xff0c;使用户能…