字符串及相关算法

本文介绍了串的基本概念,强调了''作为字符串结束标志的重要性,并探讨了字符串结构应具备的功能,如创建、销毁、复制等。接着,讨论了字符串的两种实现方式:栈内存存储和堆内存存储。进一步阐述了封装字符串的意义,尤其是在C++中的优势。最后,讲解了子串查询算法,这是一个在字符串处理中常见的操作。
摘要由CSDN通过智能技术生成

串的介绍

串型结构就是由若干个类型相同的元素组成的数据结构,末尾有一个结束标志,字符串就是由字符元素组成的串型结构,'\0'是它的结束标志,使用它可以存储单词、文章、汉字等文字信息。

随着计算机和编程语言的发展,字符串在程序中使用的越来越多,字符串就简称串,对它的操作都是对串里面所有字符整体操作,以'\0'为结束标志,如果字符串的末尾没有'\0',可能会产生乱码、段错误、脏数据等问题。

1、字符串结构应该具备的功能、算法有:

创建:定义字符串

销毁:释放字符串

清空:删除所有的字符

复制:就是strcpy函数

连接:就是strcat函数

比较:就是strcmp函数

长度:就是strlen函数

查询字串:就是strstr函数

2、字符串的表示与实现

字符串一般有两实现方式,这两种方式都是使用顺序表,只是内存不同而已:

1、用栈内存存储字符,定长方式,字符的数量一旦超出表的范围,为了防止内存越界要对字符串进行截取,了解一下即可。

2、使用堆内存破碎字符,在操作字符串时,自动扩展堆内存。

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

typedef struct String
{
	cha
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值