数据结构 - 串(C语言实现)

本文介绍了串的定义,包括其在C语言中的表示,如以‘’作为字符串结束标志。串的存储结构分为定长顺序表示和变长分配存储表示,并详细讨论了两种方法。此外,还提到了串的基本操作,如赋值、比较和连接,并提供了相关代码演示。在实践中,遇到结构体数组未初始化时,必须显式初始化以确保所有元素都能正常使用。
摘要由CSDN通过智能技术生成

一. 串的定义
 串是由零个或者多个字符组成的有限序列。串中任意连续的字符组成的子序列称为该串的字串,包含字串的串称为主串
 在C语言中,串可以使用如下语句定义:

char str[] = "Hello World!";

 上面的串里面一共有12个字符,但是编译器以 ‘\0’ 作为字符串结束标志,所以数组str的长度为13串str的长度为12

二. 串的存储结构

  1. 定长顺序表示
     串的定长顺序表示指的是采用一个固定长度的数组来存储串,但是并不像上面那样直接定义,而是额外定义一个变量存储所存储数组中串的长度。

    typedef struct
    {
    	char str[MaxSize +1];//MaxSize为串的最大长度,定义为+1是因为最后存储'\0'作为字符串结束标记
    	int Length;
    }str;
    
  2. 变长分配存储表示
     变长分配存储表示(又叫动态分配存储表示)是指定义一个指向存储区的首地址的指针,根据需要不断申请内存来存储串。

    typedef struct{
    	char *ch;	//指向动态分配存储区首地址的指针 
    	int length; //串的长度 
    }Str;
    

三.

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值