C/C++数据结构:串的五个常用操作

/**
*
* Althor: Hacker Hao
* Create: 2023.10.14
*
*/
#include <bits/stdc++.h>
using namespace std;
#define MAXSIZE 200
#define ERROR -1
#define OK 1
typedef struct
{char data[MAXSIZE];int length;
}SqString;
//实现串赋值、串比较、求串长、串联接以及求子串这5种基本操作。void Assign(SqString &s, char str[])
{int i = 0;for (i = 0; str[i] != '\0'; i++)s.data[i] = str[i];s.length = i;
}void Compare(SqString *s1, SqString *s2)
{int i = 0;for (i = 0; s1->data[i] != '\0' && s2->data[i] != '\0'; i++){if (s1->data[i] > s2->data[i]){cout << "前者大" << endl;return;}if (s1->data[i] < s2->data[i]){cout << "后者大" << endl;return;}}cout << "一样大" << endl;return;
}int Length(SqString* s)
{return s->length;
}void Concat(SqString* s1, SqString* s2, SqString* s)
{int t = 0;if (s1->length + s2->length <= MAXSIZE){for (int i = 0; i < s1->length; i++){s->data[i] = s1->data[i];}for (int i = 0, j = s1->length; j < s1->length + s2->length; i++, j++){s->data[j] = s2->data[i];}s->length = s1->length + s2->length;t = s->length;}else{for (int i = 0; i < s1->length; i++){s->data[i] = s1->data[i];}for (int i = 0, j = s1->length; i< MAXSIZE - s1->length; i++, j++){s->data[j] = s2->data[i];}t = MAXSIZE;}cout << "新的链接好的串为:" << endl;for (int i = 0; i < t; i++){cout << s->data[i];}cout << endl;
}
int SubString(SqString &Sub, SqString s, int pos, int len)
{if (pos < 1 || pos > s.length || len < 0 || len > s.length - pos + 1)return ERROR;for (int i = 0; i < len; i++,pos++){Sub.data[i] = s.data[pos];}Sub.length = len;for (int i = 0; i < len; i++){cout << Sub.data[i];}cout << endl;return OK;
}int main()
{cin.tie(0), cout.tie(0);SqString s1, s2, s3, Sub;char str1[200] = "hello";char str2[200] = "nihao";Assign(s1, str1);Assign(s2, str2);Compare(&s1, &s2);cout << "s1的长度为:" << Length(&s1) << endl;cout << "s2的长度为:" << Length(&s2) << endl;Concat(&s1, &s2, &s3);cout << "输出的字串为:" << endl;SubString(Sub,s3, 3, 4);return 0;
}

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

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

相关文章

物联网AI MicroPython传感器学习 之 TDS水质检测传感器

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; 一、产品简介 TDS是Total Dissolved Solids的缩写&#xff0c;中文名总溶解固体&#xff0c;也叫溶解性固体总量&#xff0c;他标识1升水中溶有多少毫克的可溶解性固体。一般来说&#xff0c;TDS值越高&…

react中利用useRef、forwardRef、useImperativeHandle获取并处理dom

React如何给组件设置ref属性&#xff0c;如果直接绑给组件&#xff0c;代码如下&#xff1a; import { useRef } from "react"function MyInput() {return (<input type"text"/>) }function App() {const myRef useRef(null)const handleClick ()…

电脑上播放4K视频需要具备哪些条件?

在电视上播放 4K&#xff08; 4096 2160 像素&#xff09;视频是很简单的&#xff0c;但在电脑设备上播放 4K 视频并不容易。相反&#xff0c;它们有自己必须满足的硬件要求。 如果不满足要求&#xff0c;在电脑上打开 4K 分辨率文件或大型视频文件会导致卡顿、音频滞后以及更…

HTTP/2 中的漏洞

另一个热门漏洞是 CVE-2023-44487。 该漏洞与 HTTP/2 协议实施中的一个缺陷有关&#xff0c;可用于实施 DDoS 攻击。使用该漏洞的攻击被命名为 HTTP/2 快速重置。 为什么它很危险 要利用该漏洞&#xff0c;攻击者需要在 HTTP/2 会话中打开大量请求&#xff0c;然后在不等待服…

【antdv】input实现搜索框获取清空输入值

使用Ant Design of Vue 1版本&#xff0c;实现搜索框。 html部分 <a-input-search placeholder"请输入" v-model.value"searchText" input"onInput" search"onSearch" />js部分 export default{data(){return{searchText:}},…

mysql面试题49:MySQL中不同text数据类型的最大长度

该文章专注于面试&#xff0c;面试只要回答关键点即可&#xff0c;不需要对框架有非常深入的回答&#xff0c;如果你想应付面试&#xff0c;是足够了&#xff0c;抓住关键点 面试官&#xff1a;MySQL中TEXT数据类型的最大长度 在MySQL中&#xff0c;TEXT数据类型用于存储较大…

设计模式——22. 责任链模式

1. 说明 责任链模式是一种行为设计模式,它允许你创建一个对象链,每个对象都包含了请求的一部分处理逻辑,并且请求按照链的顺序依次传递,直到有一个对象处理它为止。责任链模式通常用于将一个请求从发送者传递给多个接收者,直到有一个接收者处理请求为止。 责任链模式的核…

电脑提示Explorer.exe系统错误该怎么办?

平时我们在使用电脑时&#xff0c;系统有时会提示Explorer.exe系统错误&#xff0c;很多用户在遇到这类问题时不知道该怎么办。遇到Explorer.exe系统错误&#xff0c;该怎么办呢&#xff1f;下面我们一起来了解一下。 怎么修复Explorer.exe系统错误&#xff1f; Explorer.exe是…

LangChain-Decorators 包学习

libraryIO的链接&#xff1a;https://libraries.io/pypi/langchain-decorators 来colab玩玩它的demo 感觉这确实是个挺好用的库 想到之前纯调prompt来控制输出格式的痛苦&#xff0c;这个可太有效了 cool~ 最下面这个react的多智能体例子很好玩&#xff0c;来看看&…

The SDK location is inside Studio install location 解决

The SDK location is inside Studio install location 解决 安装 Android Studio SDK 时提示&#xff1a;The SDK location is inside Studio install location 解决 问题&#xff1a; 由于 SDK 与 编辑器(Android Studio)的安装在同一目录下所以报错。 解决 你需要在 Andro…

第三节:利用运行按钮运行VBA代码

《VBA之Excel应用》&#xff08;10178983&#xff09;是非常经典的&#xff0c;是我推出的第七套教程&#xff0c;定位于初级&#xff0c;目前是第一版修订。这套教程从简单的录制宏开始讲解&#xff0c;一直到窗体的搭建&#xff0c;内容丰富&#xff0c;实例众多。大家可以非…

leetcode-198.打家劫舍

1. 题目 2. 解答 dp[i]表示第i个位置的偷窃最大金额&#xff1b; room[i]表示第i间房间的现金&#xff1b; dp[0] room[0]; dp[1] max(room[0], room[1]); dp[i] max(dp[i-1], dp[i-2] room[i]); #include <stdio.h>int max(int a, int b) {return a > b? a:b;…

高校教务系统登录页面JS分析——重庆交通大学

高校教务系统密码加密逻辑及JS逆向 本文将介绍高校教务系统的密码加密逻辑以及使用JavaScript进行逆向分析的过程。通过本文&#xff0c;你将了解到密码加密的基本概念、常用加密算法以及如何通过逆向分析来破解密码。 本文仅供交流学习&#xff0c;勿用于非法用途。 一、密码加…

Neo4j入门基础:CREATE,DELETE,SET,REMOVE(看不懂我直接吃...)

1. 创建节点 1.1 创建一个节点 create (s:student1)创建一个标签为student1的节点 1.2 创建多个节点 create (s2:student2),(s3:student3)同时创建两个节点&#xff0c;标签分别为&#xff1a;student2&#xff0c;student3 1.3 创建节点并附带&#xff08;多个&#xff0…

【部署】Linux Shell脚本部署java程序 (jar包)

文章目录 前言 前言 #!/usr/bin/env bash #可变参数变量#部署磁盘路径 baseDirPath/data/apps/java/smj-exchange-upload #jar包名称 packageNamesmj-exchange-upload.jar #命令启动包名 xx.jar的xxpid #进程pid#检测pid getPid(){echo "检测状态-----------------------…

当想为SLB申请公网域名时,缩写是什么意思

SLB的缩写是Server Load Balancer&#xff0c;即服务器负载均衡器。 是一种内网吗? 不&#xff0c;SLB&#xff08;Server Load Balancer&#xff09;是一种位于应用程序和网络之间的设备或服务&#xff0c;用于在多个服务器之间分发流量、负载均衡以及提供高可用性。它通常…

教你快速解决unity无法添加脚本bug

原因一 就是报错的字面意思&#xff0c;文件名与类名不一致&#xff01; 原因二 与版本不兼容的汉化导致系统出错&#xff01; 解决办法一 使用原版本自带的英文显示 解决办法二 更换汉化包 我其实更加推荐使用英文版本的Unity&#xff01;

正则表达式基础语法

https://tool.oschina.net/regex 正则表达式&#xff1a;检查、匹配字符串的表达式 单个字符匹配&#xff1a; 有特殊含义的匹配&#xff1a; 多次重复匹配&#xff1a; 限定开头结尾的匹配&#xff1a; 贪婪模式&#xff1a;在满足条件的情况下&#xff0c;尽可能多匹配…

云耀服务器L实例部署Nextcloud企业云盘系统|华为云云耀云服务器L实例评测使用体验

文章目录 Nextcloud简介1.1 部署华为云云耀服务器L实例1.1.1 云耀服务器L实例购买1.1.2 云耀服务器L实例初始化配置1.1.3 远程登录云耀服务器L实例 2. 云耀服务器L实例中间件部署2.1 安装配置环境2.1.1 安装基本工具2.1.2 安装MariaDB2.1.3 安装Nginx2.1.4 安装PHP 3. 安装Next…

svn项目同步到gitLab

安装git 确保安装了git 新建一个文件夹svn-git 在文件夹中新建userinfo.txt文件&#xff0c;映射svn用户,这个文件主要是用于将SVN用户映射为Git用户&#xff08;昵称及其邮箱&#xff09;。 userinfo.txt具体格式如下&#xff1a; admin admin <admin163.com> lis…