sqString.h

#define MaxSize 100             //最多的字符个数
typedef struct
{   char data[MaxSize];         //定义可容纳MaxSize个字符的空间int length;                 //标记当前实际串长
} SqString;
void StrAssign(SqString &s,char cstr[]);    //字符串常量cstr赋给串s
SqString DelStr(SqString s,int i,int j) ;   //串删去
void DispStr(SqString s);   //输出串

sqString.cpp

#include <stdio.h>
#include <malloc.h>
#include "SqString.h"
void StrAssign(SqString &s,char cstr[]) //s为引用型参数
{   int i;for (i=0;cstr[i]!='\0';i++)s.data[i]=cstr[i];s.length=i;
}
SqString DelStr(SqString s,int i,int j)
{   int k;SqString str;str.length=0;if (i<=0 || i>s.length || i+j>s.length+1) //参数不正确时返回空串return str;for (k=0;k<i-1;k++)             //将s.data[0..i-2]复制到strstr.data[k]=s.data[k];for (k=i+j-1;k<s.length;k++)    //将s.data[i+j-1..s.length-1]复制到strstr.data[k-j]=s.data[k];str.length=s.length-j;return str;
}
void DispStr(SqString s)
{   int i;if (s.length>0){   for (i=0;i<s.length;i++)printf("%c",s.data[i]);printf("\n");}
}

main.cpp

#include <stdio.h>
#include "sqString.h"
void Trans(SqString &s, char c1, char c2)
{int i;for (i=0; i<s.length; i++)if (s.data[i]==c1)s.data[i]=c2;
}
void Invert(SqString &s)
{int i;char temp;for (i=0; i<s.length/2; i++){temp = s.data[i];s.data[i]=s.data[s.length-i-1];s.data[s.length-i-1] = temp;}
}
void DellChar(SqString &s, char c)
{int k=0, i=0;   //k记录值等于c的字符个数while(i<s.length){if(s.data[i]==c)k++;elses.data[i-k]=s.data[i];i++;}s.length -= k;
}
SqString CommChar(SqString s1,SqString s2)
{SqString s3;int i,j,k=0;for (i=0; i<s1.length; i++){for (j=0; j<s2.length; j++)if (s2.data[j]==s1.data[i])break;if (j<s2.length)            //s1.data[i]是公共字符{s3.data[k]=s1.data[i];k++;}}s3.length=k;return s3;
}
int main()
{SqString s;StrAssign(s, "messages");Trans(s, 'e', 'a');DispStr(s);StrAssign(s, "abcdefg");Invert(s);DispStr(s);StrAssign(s, "message");DellChar(s, 'e');DispStr(s);SqString s1, s2 ;StrAssign(s1, "message");StrAssign(s2, "agent");s = CommChar(s1, s2);DispStr(s);return 0;
}

第八周实践项目3 顺序串一些算法操作相关推荐

  1. 数据结构上机实践第八周项目1- 建立顺序串的算法库

    建立顺序串的算法库 本次实践将建立顺序串的算法库,这样可以方便的将此算法运用于我们的所需的工程中,简化操作. 本次实践将用到多文件组织工程的建立,建立方法可以点击此处参照.(工程环境:Visual C ...

  2. 第八周实践项目 5 计数的模式匹配

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目- 采用顺序结构存储串,编写一个算法计算指定子串在一个字符串中出 ...

  3. 第八周实践项目4 字符串加密

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目- 一个文本串可用事先编制好的字符映射表进行加密.例如,设字符映 ...

  4. 第八周项目实践1 建立顺序串的算法库

    SqString .h #ifndef SqString_H_INCLUDED #define SqString_H_INCLUDED#define MaxSize 100 //最多的字符个数 typ ...

  5. 第八周实践项目9 算法库——广义表

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目9- *作 者:邵雪源 *完成日期:2017年12月14日 *版 ...

  6. 第八周实践项目6 猴子选大王(数组版)

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目6-一群猴子,编号是1,2,3 -m,这群猴子(m个)按照1-m ...

  7. 第八周实践项目8 稀疏矩阵的三元组表示的实现及应用

    #include <stdio.h> #define M 6 #define N 7 #define MaxSize 100 //矩阵中非零元素最多个数 typedef int ElemT ...

  8. 第八周实践项目7 对称矩阵的压缩存储及基本运算

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目7- *作 者:邵雪源 *完成日期:2017年12月14日 *版 ...

  9. 第3周实践项目1 顺序表的基本运算

    /*copyright (t) 2017,烟台大学计算机学院 *All rights reserved. *文件名称:1.cpp *作者:邵雪源 *完成日期:2017年9月19日 *版本号:v1.0 ...

最新文章

  1. 取eclipse console 打印字符串,判断日志是否有异常
  2. php中的关联数组,PHP中的多种关联数组
  3. 如何在原先的jqgrid中填充新的数据_如何提升NX工程师的逆向能力与速度
  4. 谢瑛姿(帮别人名字作诗)
  5. 【渝粤题库】国家开放大学2021春3896人文英语1题目
  6. .net 日期总结,用于业务时间查询
  7. flux react php,Vue的Flux框架之Vuex状态管理器
  8. 不能错过!简单易懂的哈希表总结
  9. word转PDF-Python编写的插件
  10. 7 EXCEL常用快捷键
  11. 找回excel工作表保护密码
  12. Java 已知直角三角形周长,求整数边
  13. 将顺序表中非零元素移动到顺序表的前面
  14. 22考研全年备考规划表,这5个时间点你必须知道!
  15. hive和presto下标准时间格式和时间戳的转化
  16. html 表单 日历,带表单功能的日历,可插入内容的日历
  17. 诸葛java_java - 诸葛_子房的个人空间 - OSCHINA - 中文开源技术交流社区
  18. String的inturn()的运用
  19. 电视软件测试项目怎么做,LED TV液晶电视软件测试用例.doc
  20. ssm整合开发 动力节点王鹤版本

热门文章

  1. Objectice-C之类层次结构
  2. WWDC 2011 苹果全球开发者大会【中文】
  3. 拖动无标题栏的窗体,需要处理的三个事件
  4. 蓝牙PSKEY的调整
  5. Android下拉刷新开源库对比(转)
  6. HTML常见小问题2
  7. CENTOS6.3下zabbix安装部署
  8. 终于将SAP系统完全配置通过了
  9. 修改mysql存储过程的权限调用权限 definer invoker
  10. 爱立信与Ooredoo签署5G新框架协议