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

串的基本操作(数据结构)

串的基本操作

#include <stdlib.h>
#include <iostream>
#include <stdio.h>
#define MaxSize 255typedef struct{char ch[MaxSize];int length;
}SString;//初始化
SString InitStr(SString &S){S.length=0;return S;
} //为了方便计算,串的下标从1开始计算 
//给串赋值 
SString SetStr(SString &S){char c;int i=1;scanf("%c",&c);while(c!='\n'){S.ch[i++]=c;S.length++;scanf("%c",&c);}return S;
} //返回字符串的长度
int StrLength(SString &S){return S.length;
} //清空字符串 
void ClearStrinf(SString &S){S.length=0;
}//求字符串的字串
bool SubString(SString &Sub,SString &S,int pos,int len){if(pos+len-1>S.length) return false;//字串超出范围for(int i=pos;i<pos+len;i++){Sub.ch[i-pos+1] = S.ch[i];} Sub.length = len;return true;
} //比较字符串
bool StrCompare(SString &S,SString &T){for(int i=1;i<=S.length && i<=T.length;i++){if(S.ch[i]!=T.ch[i])//进行字符比较 return S.ch[i]-T.ch[i];// S>T:>0,S<T:<0,S=T:=0 }return S.length-T.length;//所有字符都相同,长度大的串更大 
} //定位操作
int Index(SString &S,SString &T){int i=0;int n=StrLength(S);int m=StrLength(T);SString Sub;//暂时存字串 while(i<=n-m+1){SubString(Sub,S,i,m);if(StrCompare(Sub,T)!=0) i++;else return i;//返回字串在主串的位置 }return 0;//不存在与T匹配的字串 
}//显示串 
void ShowString(SString &S){for(int i=1;i<S.length;i++){printf("%c",S.ch[i]);}printf("\n");
}int main(){printf("设置串:");SString S;InitStr(S);SetStr(S);int len1;len1=StrLength(S);printf("串长度为:%d\n",len1);printf("设置字串:");SString D;InitStr(D);SetStr(D);int len2;len2=StrLength(D);printf("子串长度为:%d\n",len2);printf("\n");printf("-----------求字符串的字串-------------\n");SString Sub;int pos,len;printf("输入截取的起始位置和长度:");scanf("%d,%d",&pos,&len);if(SubString(Sub,S,pos,len)) {printf("截取后的字串\n");ShowString(Sub);}else printf("截取失败\n");printf("\n");printf("-------------定位字串-------------\n");int i;i=Index(S,D);if(i) printf("字串定位:%d",i);else printf("字串定位失败\n");return 0;
}

展示

在这里插入图片描述

http://www.lryc.cn/news/188942.html

相关文章:

  • ctfshow-web12(glob绕过)
  • hive3.1核心源码思路
  • LATR:3D Lane Detection from Monocular Images with Transformer
  • 什么是UI自动化测试工具?
  • 计算顺序表中值在100到500之间的元素个数
  • 【问题总结】级数的括号可以拆吗?
  • 抖音自动养号脚本+抖音直播控场脚本
  • uvm中transaction的response和id的解读
  • 第四节(1):EXCEL中判断一个WORD文件是否被打开
  • java.util.concurrent.locks.Condition详解
  • 选择适合变更管理的产品开发工具的要点和建议
  • 小程序 词云图 echarts-for-weixin-wordcloud
  • VScode配置Jupyter
  • java模拟GPT流式问答
  • 【好玩】如何在github主页放一条贪吃蛇
  • 顶顶通ASR安装配置说明
  • VMware和别的服务器 ,组建局域网那些事 。
  • 自监督DINO论文笔记
  • 计算机视觉: 基于隐式BRDF自编码器的文生三维技术
  • 分类预测 | MATLAB实现KOA-CNN-BiLSTM开普勒算法优化卷积双向长短期记忆神经网络数据分类预测
  • Java队列相关面试题
  • 水库大坝除险加固安全监测系统解决方案
  • android native C++编程实现数据库加密sqlcipher
  • 第五节 C++ 循环结构(算法)
  • 接口与抽象类的区别
  • 短视频账号矩阵系统源码saas===独立部署
  • 香港专用服务器拥有良好的国际网络连接
  • IP/SIP网络有源吸顶喇叭 20W扬声器 可供POE供电
  • 基于Keil a51汇编 —— 程序模板文件以及规则
  • 案例研究 | 玉湖冷链基于JumpServer实现管理安全一体化