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

网站建设网站软件珠海品牌机械网站建设

网站建设网站软件,珠海品牌机械网站建设,wordpress不显示分类目录,个人crm管理系统目录 1.顺序串是什么? 2.顺序串常见操作和应用 3.包含头文件 4.结点设计 5.接口函数定义 6.接口函数实现 7.顺序串测试案列 顺序串是什么? 顺序串,用于存储和操作字符串。在顺序串中,字符串被存储在一个连续的内存块中&#xff0c…

目录

        1.顺序串是什么?

        2.顺序串常见操作和应用

        3.包含头文件

        4.结点设计

        5.接口函数定义

        6.接口函数实现

        7.顺序串测试案列


顺序串是什么?

        顺序串,用于存储和操作字符串。在顺序串中,字符串被存储在一个连续的内存块中,通常是数组或动态数组(如C++中的std::vector或Java中的ArrayList)。顺序串的主要优点是它提供了一种简单且高效的方式来访问和修改字符串中的字符。以下是顺序串的特点:

        1.连续内存:字符串的所有字符都存储在连续的内存位置,这有助于提高访问速度

        2.动态扩展:顺序串通常使用动态数组实现,这意味着它们可以根据需要自动扩展其大小

        3.随机访问:由于字符串存储在数组中,任何字符都可以在常数时间内被访问,即O(1)时间复杂度


顺序串常见操作和应用

        要实现顺序串需要实现以下操作:

                1.访问字符:可以直接通过索引访问字符串中的任何字符

                2.修改字符:可以直接通过索引修改字符串中的任何字符

                3.插入字符:可以在字符串的任何位置插入字符,但可能需要移动插入点后的所有字符

                4.删除字符:可以从字符串中删除任何字符,但可能需要移动删除点后的所有字符。

                5.连接字符串:可以将两个或多个字符串连接在一起,通常需要扩展数组并复制字符

        顺序串的应用:

                1.文本编辑:顺序串常用于文本编辑器中,用于存储和操作文本数据

                2.字符串处理:在需要频繁访问和修改字符串的场景下,顺序串提供了一种高效的数据结构


包含头文件

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

结点设计

#define Initsize 10
typedef char Elemtype;typedef struct SqString {Elemtype data[Initsize];			//定义数组data为数据域,存储数据int length;							//定义变量length存储串长度
}SqString;

接口函数定义

bool InitString(SqString& A);					//用于初始化顺序串
bool Assign(SqString& A, char str[]);			//用于将字符数组中的数据赋值给顺序串
bool StringCopy(SqString& A, SqString B);		//用于将B顺序串数据复制到A顺序串
bool Strlen(SqString A, SqString B);			//用于判断两个顺序串是否相等
SqString Concat(SqString A, SqString B);		//用于将两个字符串连接
bool Index(SqString A, SqString B);				//用于查找子串的位置
bool InsertStr(SqString& A, SqString B, int i);	//用于在顺序串中插入子串
bool InsertString(SqString& A);					//用于在顺序串中输入数据
bool IdlString(SqString& A, int i, int j);		//用于选定删除子串
void DispStr(SqString A);						//用于输出顺序串
//用于在顺序串中查找等长度的子串,i为开始的次序,j为子串长度
SqString SubStr(SqString A, int i, int j);

接口函数实现

void DispStr(SqString A) {				//用于输出顺序串if (A.length == 0) {				//为减少存储空间,判断是否为空串printf("传入的顺序串为空串");}else {int i;for (i = 0; i < A.length; i++) {//遍历输出串printf("%c", A.data[i]);}}
}bool IdlString(SqString& A, int i, int j) {	//用于选定删除子串if (i<1 || i>A.length || j<1 || j + i>A.length + 1) {	//判断传入的次序是否有误printf("传入的次序或长度有误");return false;}else {int k;for (k = i-1+j; k < A.length; k++) {			//删除特定次序的子串A.data[i - 1] = A.data[k];i++;}A.length -= j;			//更新顺序串的大小return true;}
}bool InsertString(SqString& A) { //用于在顺序串中输入数据int i;char x[Initsize];			 //定义一个字符数组存储字符printf("创建的顺序串大小为%d,请问需要输入多少个数据:",Initsize);scanf_s("%d", &A.length);if (A.length == 0) {return false;}printf("请输入数据:");getchar();					//清除计算机缓存区gets_s(x, A.length+1);		//使用get_s函数从键盘键入数据,大小为A.length+1for (i = 0; i <A.length; i++) {			//更新顺序串数据A.data[i] = x[i];}return true;
}bool InsertStr(SqString& A, SqString B, int i) { //用于在顺序串中插入子串int j,k=A.length-1;if (i<1 || i>A.length + 1) {			//判断传入的次序是否合理printf("插入的位序不合理\n");return false;}else {if (i + B.length +A.length> Initsize) {	  //判断顺序串是否有空间存储插入的子串printf("传入的顺序串所剩的空间不足\n");return false;}else {for (j = A.length + B.length; j >= A.length; j--)	//遍历顺序串,将传入的次序后的数据后移{A.data[j] = A.data[k];k--;}k = 0;for (j = i - 1; j < A.length; j++) {	//遍历顺序串,将子串插入对应的次序中A.data[j] = B.data[k];k++;}}}A.length += B.length;			//更新顺序串的长度lengthprintf("在顺序表中插入子串成功\n");return true;
}bool Index(SqString A, SqString B) {	//用于查找子串的位置int i=0, j=0, len=0;while (i < A.length && j < B.length) {		//遍历传入顺序表和子串if (A.data[i] == B.data[j]) {			//判断传入的子串是否在传入的顺序表中len = i;		//记录子串的位置i++;j++;}else {len = 0;		j = 0;i++;}}if (j >= B.length) {	//判断是否在顺序表中找到对应的子串printf("已找到对应的子串,其子串位于主串的第%d个到第%d个位置\n",len,len+B.length-1);return true;}else {printf("找不到对应的子串\n");return false;}
}SqString SubStr(SqString A, int i, int j) {	//用于在顺序串中查找等长度的子串,i为开始的次序,j为子串SqString C;			//定义顺序串C,储存查找到的子串if (i > A.length || i+j > A.length+1 || i<1 ||j<1) {//判断传入的次序和长度是否合理C.length = 0;	//更新顺序串C的长度printf("传入的长度参数错误,找不到子串\n");return C;}else {int K;for (K = i - 1; K < i + j - 1; K++) {C.data[K - i + 1] = A.data[K];			//将查找到的子串赋值给顺序串C}C.length = j;	//更新顺序串C的长度}return C;
}SqString Concat(SqString A, SqString B) { //定义函数Concat用于将两个字符串连接SqString C;			//定义顺序串C存储连接结果的数据int i,j;for (i = 0; i < A.length; i++) {	  //将顺序串A的数据赋值给新的顺序串CC.data[i] = A.data[i];}for (j=0; j < B.length; j++) {		  //将顺序串B的数据赋值给新的顺序串CC.data[A.length+j] = B.data[j];}C.length = i + j;			//更新顺序串C的长度lengthprintf("传入的两个顺序串连接成功\n");return C;
}bool Strlen(SqString A, SqString B) {	 //用于判断两个顺序串是否相等if (A.length != B.length) {			 //判断传入的顺序串长度length是否相等printf("顺序串长度不相等\n");return false;}else {int i;for (i = 0; i < A.length; i++) { //遍历两个顺序串判断所含数据是否相等if (A.data[i] != B.data[i]) {printf("顺序串中所含数据不相等\n");return false;}}printf("传入的顺序串数据相等\n");return true;}
}bool StringCopy(SqString& A, SqString B) {	//用于将B顺序串数据复制到A顺序串if (A.length < B.length) {			//判断要复制的顺序串长度是否大于新的顺序串printf("要复制的顺序串长度大于新的顺序串\n");return false;}else {int i=0;while (i < B.length) {			//遍历要复制的顺序串A.data[i] = B.data[i];i++;}printf("顺序串复制成功\n");A.length = B.length;			//更新新的顺序串的长度lengthreturn true;}
}bool Assign(SqString& A, char str[]) {		//用于将字符数组中的数据赋值给顺序串if (strlen(str) > Initsize) {			//判断传入的字符数组数据是否过大printf("字符数组过大,顺序串存储不足\n");return false;}else {int i = 0;while (str[i] != '\0') {			//遍历字符数组并将其数据赋值到顺序串A.data[i] = str[i];i++;}A.length = i;						//更新顺序串长度lengthprintf("赋值成功\n");return true;}
}bool InitString(SqString& A) {	//用于初始化顺序串A.length = 0;				//将串中length赋初值为0printf("顺序串初始化成功\n");return true;
}

顺序串测试案列

void main() {SqString X,Y,Z;InitString(X);InitString(Y);InsertString(X);InsertString(Y);DispStr(X);printf("\n");Index(X, Y);
}
http://www.yayakq.cn/news/964198/

相关文章:

  • 网站重复关键词seo优化排名公司
  • 南通网站推广怎么收费网站开发合同中的知识产权条款
  • 专业做毕业设计网站网站建设 长期待摊
  • 深圳微信网站运营wordpress 模板 学校
  • 网站建设定位深圳营销外深圳网络营销公司
  • pc网站怎么适配移动端个人微信公众号收费吗
  • 淄博网站制作定制品牌杭州有专业做网站小型服装厂吗
  • 万网网站首页代理网店怎么开
  • 绵阳商城网站建设金融网站建设方案ppt模板下载
  • 网站设计 扁平化东莞道滘网站建设
  • 建网站市场外包推广公司
  • 手机微网站制作消防工程师证报考条件是什么
  • 深圳龙岗房价2023最新价格seo的基本步骤是什么
  • 网站地图生成行业网站运营计划
  • 自己制作网站做外贸赚钱吗菲律宾做网站
  • 网站设计怎么保持风格一致网页设计与制作实训总结报告
  • 做网站设计好的公司wordpress 建网站
  • 360免费建站官网入口抖音代运营销售话术
  • 网站模板二次开发网络推广是以企业产品或服务
  • 网站备案需要什么住房和城乡建设局网站
  • 怎么注册建设公司网站wordpress+一页一屏
  • 创业网站开发聊天软件哪个最火
  • 南通做网站企业网站建设方案打包
  • asp.net 网站 方案男女做某事网站
  • 谁家网站做的好wordpress插件使用数量
  • 蒙城做网站的公司wordpress注入广告
  • 诚通凯胜生态建设有限公司网站网站改版的原因
  • wap网站登陆系统物流网站建设规划总结
  • 可以做投票的网站网站开发学什么编程语言
  • 清溪网站建设公司网站建设需要几个人