目录
一、什么是串?
串是由零个或多个字符组成的有限序列。通常,串中的字符可以是字母、数字、标点符号等。串的长度是指串中字符的个数。例如,"hello"、"123"、"abc"等都是串。串的研究对于文本处理、模式匹配、数据压缩等领域具有重要意义。本文主要使用动态数组存储串,并介绍串的基本操作以及代码实现。
二、串的结构体定义
typedef struct {
char* string; //字符串
int Capacity; //容量
int length; //字符数
}String;
三、通过字符输入的方式创建一个串
//初始化字符串
static void String_Init(String* str)
{
str->Capacity = 4;
str->string = NULL;
str->length = 0;
}
//判断是否需要增容
static void String_Full(String* str)
{
if (str->length == str->Capacity)
{
str->string = (char*)realloc(str->string, 2 * str->Capacity * sizeof(char));
str->Capacity *= 2;
}
}
//建立字符串
void String_Creat(String* str)
{
String_Init(str);
str->string = (char*)malloc(str->Capacity * sizeof(char));
char c;
int i = 0;
while (1)
{
c = getchar();
String_Full(str);
if (c == '\n')
break;
else
{
str->string[i++] = c;
str->length++;
}
}
str->string[i] = '