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

news2024/9/22 23:23:05

串的定义(逻辑结构)

,即字符串(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.coloradmin.cn/o/1921433.html

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

相关文章

印尼Facebook直播网络需要达到什么要求?

在全球化浪潮的推动下&#xff0c;海外直播正受到企业、个人和机构的广泛关注和青睐。无论是用于营销、推广还是互动&#xff0c;海外直播为各种组织提供了更多机会和可能性。本文将探讨在进行印尼Facebook直播前&#xff0c;需要满足哪些网络条件以确保直播的质量和用户体验。…

Codeforces Round 957 (Div. 3) F. Valuable Cards

题目 #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 #define ll long longconst int maxn 1e6 5, inf 1e18, maxm 4e4 5…

容器docker 架构命令案例

文章目录 前言一、docker1.1 为什么有docker1.2 docker架构1.3 docker 安装1.4 docker中央仓库1.5 docker 基本指令1.6 docker数据卷&#xff0c;挂载例&#xff1a;nginx 数据卷挂载例&#xff1a;mysql 本地持久化 1.7 镜像制作镜像结构dockerfile基础指令容器生成镜像 1.8 d…

如何使用Github Page搭建个人网站【踩坑实录多图预警】

读前提示 教程链接&#xff1a;使用GitHub Page创建个人网站和博客 | GitHub 中文社区 点进网站就是非常详细的步骤介绍&#xff0c;基本按部就班来跟着做就OK了&#xff0c;结果不是很熟悉操作&#xff0c;踩了几个坑还是顺利搞定了。 踩坑后的建议&#xff1a;一定要先完成…

百元不入耳耳机哪款好?强推这五款宝藏产品

如今无线蓝牙耳机是年轻人学习通勤、健身娱乐的标配&#xff0c;但普及率极高的入耳式耳机却存在堵塞耳孔、影响外界感知等不足&#xff0c;而开放式耳机的出现恰好弥补了这些不足&#xff0c;受到了越来越多人的欢迎。但要从各种品牌、各类型号的开放式耳机中选出一款最适合自…

数学建模·灰色关联度

灰色关联分析 基本原理 灰色关联分析可以确定一个系统中哪些因素是主要因素&#xff0c;哪些是次要因素&#xff1b; 灰色关联分析也可以用于综合评价&#xff0c;但是由于数据预处理的方式不同&#xff0c;导致结果 有较大出入 &#xff0c;故一般不采用 具体步骤 数据预处理…

Nginx和Tomcat实现负载均衡群集部署应用

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f427;Linux基础知识(初学)&#xff1a;点击&#xff01; &#x1f427;Linux高级管理专栏&#xff1a;点击&#xff01; &#x1f510;Linux中firewalld防火墙&#xff1a;点击&#xff01; ⏰️创作时间&…

20240711每日消息队列-------------MQ消息的积压的折磨

目标 解决MQ消息的积压 背景 菜馆系统----------- 系统读取消息&#xff0c;处理业务逻辑&#xff0c;持久化订单和菜品数据&#xff0c;然后将其显示在菜品管理客户端上。 最初我们的用户基数很小&#xff0c;上线后的一段时间内&#xff0c;MQ消息通信还算顺利。 随着用户…

在Mac上一键安装Mysql(解决所有安装问题)

重点强调安装mysql成功的关键在于安装的版本不能是最新&#xff01;&#xff01; 目录 一&#xff1a;下载mysql数据库安装部分到此结束 二&#xff1a;配置mysql数据库三&#xff1a;启动mysql数据库四&#xff1a;各类奇葩问题总结 一&#xff1a;下载mysql数据库 1.进入MyS…

触摸屏虚拟键盘组件 jQuery Virtual Keyboard使用 自定义键盘

如何在触摸设备上为输入域添加虚拟键盘&#xff1f; 一个插件可以解决这个问题&#xff0c;关键还支持高度自定义&#xff08;git地址&#xff09;&#xff1a; GitHub - Mottie/Keyboard: Virtual Keyboard using jQuery ~ 官网地址&#xff1a;Virtual Keyboard 使用步骤&…

百日筑基第十八天-一头扎进消息队列1

百日筑基第十八天-一头扎进消息队列1 先对业界消息队列有个宏观的认识 消息队列的现状 当前开源社区用的较多的消息队列主要有 RabbitMQ、RocketMQ、Kafka 和Pulsar 四款。 国内大厂也一直在自研消息队列&#xff0c;比如阿里的 RocketMQ、腾讯的 CMQ 和 TubeMQ、京东的 JM…

无头双向非循环链表实现

无头双向非循环链表实现 Ilist.java接口&#xff1a;MyLinkedList.java&#xff1a; 无头双向非循环链表大致与无头单向非循环差不多&#xff0c;只不过每个节点多了个prev引用&#xff0c;可以从后一个节点找到前一个节点。并且除了头节点head&#xff0c;双链表还多了个尾节点…

自定义多选组件

一.业务场景 选择用印公司时&#xff0c;需要选择多个公司&#xff0c;一个公司对应一个实际使用人 点击用印单位&#xff0c;弹出选择公司窗口&#xff0c;选择使用人&#xff0c;同时带上公司ID,点击确定按钮&#xff0c;将公司和使用人回显在用印单位上 二.上代码 wxml代码…

快递查询|阿里云实现调用API接口

整体请求流程 介绍&#xff1a; 本次解析通过阿里云云市场的云服务来实现程序中对快递包裹实时监控&#xff0c;首先需要准备选择一家可以提供快递查询的商品。 https://market.aliyun.com/apimarket/detail/cmapi00065859#skuyuncode5985900001 步骤1: 选择商品 如图点击…

复杂表单一键填充,让信息输入更轻松

随着网络购物成为日常生活的一部分&#xff0c;用户在多个购物应用中重复输入地址信息带来的效率问题日益凸显。同样&#xff0c;在为家人预订车票或机票时&#xff0c;添加新的购票人信息也因难以记忆家人详细信息而变得繁琐。 为了解决这些用户痛点&#xff0c;HarmonyOS SD…

企业响应式网站建站模版源码系统 海量模版随心选择 带完整的安装代码包以及搭建部署教程

系统概述 企业响应式网站建站模版源码系统”是一套完整、高效的网站建设解决方案。它旨在为企业提供一站式的网站建设服务&#xff0c;无需专业的编程知识&#xff0c;即可通过简单的操作&#xff0c;快速搭建出美观、专业的企业网站。该系统不仅包含了丰富的网站模版&#xf…

【qt】客户端连接到服务器

获取到IP地址和端口号. 通过connectToHost() 来进行连接. 对于客户端来讲,只需要socket即可. 客户端连接服务端只需要使用套接字(Socket)来进行通信。客户端通过创建一个套接字来连接服务端&#xff0c;然后可以通过套接字发送和接收数据。套接字提供了一种简单而灵活的方式来…

勘测院如何实现可控便捷的图纸安全外发?

勘测院&#xff0c;也称为勘测设计研究院或勘测设计院&#xff0c;是进行与地质、地形和地貌有关的勘察测量的单位&#xff0c;为各类工程项目提供准确的地质数据和设计依据。 勘测院会产生各类包括图纸在内的文件&#xff0c;如&#xff1a; 1、项目相关文件&#xff1a;项目…

不同的企业如何量身制定数据治理体系

在当今数据驱动的商业环境中&#xff0c;数据治理已成为企业不可或缺的一部分。然而&#xff0c;由于行业、规模、业务模式的差异&#xff0c;不同企业在制定数据治理体系时面临着各自独特的挑战和机遇。本文将探讨不同企业如何根据自身特点量身制定数据治理体系。 明确企业数据…

基于Rspack实现大仓应用构建提效实践|得物技术

一、实践背景 随着项目的逐步迭代&#xff0c;代码量和依赖的逐渐增长&#xff0c;应用的构建速度逐步进入缓慢期。以目前所在团队的业务应用来看&#xff08;使用webpack构建&#xff09;&#xff0c;应用整体构建耗时已经普遍偏高&#xff0c;影响日常开发测试的使用效率&am…