📄 dstring.h
字号:
//动态数组
typedef struct
{
char *str;
ing maxLength;
int length;
}DString;
vod Initiate(DString *S, int max, char *string)
{
int i;
S->str=(char *)malloc(sizeof(char)*max);
S->maxLength=max;
S->length=strlen(string); //当前长度
for(i=0;i<S->length;i++)
S->str[i]=string[i];
}
int Insert(DString S,int pos,DString T)
{
int i;
char *p;
if(pos<0 || pos>S->length)
{
printf("参数出错!\n");
return 0;
}
else
{
if(S->length + T.length > S->maxLength)
{
p=(char *)realloc(S->str,(S->length + T.length) *sizeof(char));
if(p==NULL)
{
printf("内存空间不足!\n");
return 0;
}
}
for(i=S->length-1;i>=pos;i--)
S->str[i+T.length]=S->str[i];
for(i=0;i<T.lenght;i++)
S->str[pos+i]=T.str[i];
S->length=S->length+T.length;
return 1;
}
}
int Delete (DSring *S,int pos, int len)
{
int i;
if(S->length<=0)
{
printf("数组已空无法删除!\n");
return 0;
}
else if(pos<0 || len<0 ||pos+len>S->length)
{
printf("参数不合法!\n");
return 0;
}
else
{
for(i=pos+len; i<S->length; i++)
S->str[i-len]=S->str[i];
S->length=S->length-len;
return 1;
}
}
int SubString (DString *S, int pos, int len, DString *T)
{
int i;
if(pos<0 || len<0 ||pos+len > S->length)
{
printf("参数出错!\n");
return 0;
}
else
{
for(i=0;i<len;i++)
T.str[i]=S->str[pos+i];
T->length=len;
return 1;
}
}
void Destroy(DString *S)
{
free(S->str);
S->maxLength=0;
S->length=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -