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

外贸网站 备案网络营销的八种方式

外贸网站 备案,网络营销的八种方式,网站建设在哪个软件下做,有哪些好的做问卷调查的网站数据结构—串 前置说明 由于学习Java面向对象语言走火入魔,试图在C语言中模拟实现面向对象设计。里面加入了大量的函数指针配合结构体来模拟类中的成员方法 故此篇,亦可称: 面向对象的C语言程序设计 用C语言实现串这种数据结构,并将它应用到…

数据结构—串

前置说明

由于学习Java面向对象语言走火入魔,试图在C语言中模拟实现面向对象设计。里面加入了大量的函数指针配合结构体来模拟类中的成员方法
故此篇,亦可称:

面向对象的C语言程序设计
用C语言实现串这种数据结构,并将它应用到解决实际问题。
C语言特性的,麻烦的,不如自动回收的要手动管理内存,容易出Bug的。(bushi。

编程语言:C语言
IDE:VS Code
函数实现灵感:出于Java中的String类提供的方法,在C语言实现一下。

串介绍

由于版本更替,计算机对字符处理越来越多,引入了字符串的概念。
串:由零或多个字符组成的有限序列,又称字符串
一般记为s=“a1a2……an”,s为串的名称,用双引号引起来,部分语言由单引号,三引号的写法。
串的长度串的可见字符数目个数就是串的长度,就是上面的a1,a2……,an。
空串空串的长度为0,空串用"“表示。
主串与字串最初的串为主串,在主串中取一部分连续的字符序列得到一个新串,该串称为字符串的子串。比如"String"其字串可以是"S”,“Str”,""等。
串的比较两个串的比较是比较相应位置的字符,在ASCII码集中每个字符都与整数建立了一一映射。

如比较silly,stupid.第一个字符相等,那么比较第二个字符i,t。我们只需要记得ASCII码集中小写字母的编码是递增关系,而26字母表,i在t前面,故认为“i<t”,比较结束,我们认为silly比stupid小。比较逻辑是这样的。
若两个串长度不一,其中一个串比较完了,那么认为长串更大。
两个串相等的充分必要条件:两个串长度相等且对应字符一一相等。

使用说明

1.若在栈上创建String类型 变量,如String s,需要进行String s={.Init=StrInit},结构体的局部初始化
如下图

#include"String.h"
//很可惜不能实现像Java中的this关键字来隐式传递参数。
int main(){//Object-oriented Programming in CString s={.Init=StrInit};s.Init(&s);s.append(&s,"hello");s.toString(&s);printf("\n");s.append(&s,",world!");s.toString(&s);return 0;
}

2.若在栈上创建一个String* 的指针变量,需要调用newString函数,String* str=newString();newString会在堆上创建一个这样的String变量并返回其地址。

int main(){//Object-oriented Programming in CString* str=newString();str->append(str,"hello, ");char* arr="1,2,3,4,5";str->valueOfCharArrays(str,arr);str->toString(str);return 0;
}

3.由于结构体内置freememory函数指针,通过指针来调用函数可以回收自身内存,调用后相当于销毁了自身。若采用指针,请注意将该指针置空。
4.这里麻烦点在于不好好管理内存容易泄露。

结构体说明(串的顺序结构)

以下是动态字符串定义,全称Dynamic String,简称string。
注意前面字段定义,很显然这是顺序结构的定义。
串的顺序结构是用一组地址连续的存储单元存储串中的字符序列,为了摆脱原有字符串的固定性,我们选择堆区的内存以便我们实现动态扩容。
我们把\0踢出在外,但注意\0还是存在,只不过由我们内部函数封装好,始终给\0预留空间,不对外显示,使用不受\0限制。

typedef struct string{//顺序表!】//字段/属性/成员char* a;//字符指针int length;//记录当前字符串的长度,也是有效长度。int capacity;//只记录实际有效的字符容量,不包括'\0','\0'始终额外留一个字节空间。//--------------------------------------------------------------//成员函数,用函数指针模拟一下//get函数int (*getLength)(struct string* self);//获取当前字符串的长度,相当于C库中string函数。//操作字符串函数void (*toString)(struct string* self);//打印字符串void (*append)(struct string* self,const char* str);//连接字符串bool (*empty)(struct string* self);//判断字符串是否为空串。struct string* (*substring)(struct string* self,int startIndex,int endIndex);//原字符串中创建一个对应区间[startIndex,endIndex)的子字符串。//整型,浮点型,字符数组,单个字符的转化为字符串void (*valueOfInt)(struct string* self,int val);void (*valueOfLong) (struct string* self,long val);void (*valueOfFloat) (struct string* self,float val);void (*valueOfDouble) (struct string* self,double val);void (*valueOfCharArrays)(struct string* self,char val[]);//动态字符串之间的操作void (*copyOf)(struct string* self,struct string* other);//动态字符串之间的拷贝。int (*compareTo)(struct string* self,struct string* other);//比较两个字符串大小bool (*equal)(struct string* self,struct string* other);//比较字符串是否相等。int (*indexOf)(struct string* S,struct string* T,int pos);//BF算法求子串在主串指定pos之后的下标。//管理内存 void (*Init)(struct string* str); //字符串普通变量构造函数void (*reset)(struct string* self);//重置字符串,如同一开始初始化一样。效果和newString之后相同。void (*freememory)(struct string* self);//销毁自身,释放所有动态内存。使用此方法后记得将原有指针置空处理。
}String;

函数说明

gitte

测试不够严谨,难免出错。请自行学习,并在评论区指正错误,谢读。

http://www.hkea.cn/news/341437/

相关文章:

  • 东莞企业网站建设价格怎么在百度发布免费广告
  • 网站后台地址一般是在线seo优化工具
  • 海曙区住房和建设局网站备案域名
  • 网站建设硬件环境志鸿优化设计答案
  • 网页游戏网址推荐宁波网站推广网站优化
  • 福建就福建省住房与城乡建设厅网站高端网站建设企业
  • 网站如何做seo规划app怎么开发出来的
  • 吴江住房和城乡建设局官方网站产品软文是什么
  • 公司网站制作设谷歌seo是什么职业
  • 北京品牌高端网站建设公司燕郊今日头条
  • 网站制作公司徐州宁波网站seo哪家好
  • 做网站基本费用大概需要多少全媒体运营师报考官网在哪里
  • 网站建设款属于什么科目营业推广策划
  • 建设网站查证书网络广告有哪些形式
  • 分布式网站开发网络销售平台排名
  • 网站建设模板购买品牌seo培训
  • 深圳网站建设 cms网站推广交换链接
  • 标准物质网站建设5118站长工具箱
  • 做一个能注册用户的网站网络推广费用大概价格
  • 网站建设评价东莞谷歌推广
  • php网站后台进不去百度推广入口官网
  • 个人网站一键生成免费推广网站有哪些
  • 厦门做网站设计电商seo优化
  • wordpress视频点播seo技术是干什么的
  • 网站推广是怎么做的网络营销专业如何
  • 平面设计线上兼职上海网站seo
  • 个性化网站定制价格今日热点
  • 做网站的艰辛免费个人网站申请
  • 网站改版需要多久网站设计与制作毕业论文范文
  • 深圳横岗网站建设网站建设的推广渠道