本文为CSDN博主coder_gxd原创
转载请注明:https://blog.csdn.net/coder_gxd/article/details/79854201
本文介绍数据结构中串的常用算法(C/C++版),欢迎各位同学讨论指正
#include <stdlib.h>//函数malloc(),free()所在头文件
#define maxsize 100
//串的定义之顺序存储表示
typedef struct {
char str[maxsize+1];//maxsize表示串的最大长度,maxsize+1是因为结尾'\0';
int length; //串长
}Str0;
//串的定义之变长分配存储表示,本文以这种定义方式表示串;
typedef struct {
char *ch;//指向动态存储区首地址的字符指针;
int length; //串长
}Str;
//串的赋值操作,时间复杂度O(ch.length)
//串的赋值操作是对每一个元素逐个赋值,成功返回1,失败返回0;
int strassign(Str &str,char *ch){//c指向字符数组的首地址,将c中字符赋给串str;
if(str.ch!=NULL){//若串str不为空,则释放原字符串;
free(str.ch);
}
int len=0;char *c=ch;
while(*c){++len;++c;}//求字符数组ch长度;
if(len==0){//若字符数组ch为空&#x