#include <stdio.h>
#include <string.h>
#define MAXLEN 100
typedef struct {
char ch[MAXLEN];
int len;
} SString;
SString strConcat(SString s, SString t) {
SString s1;
int i;
if (s.len + t.len <= MAXLEN) {
for (i = 0; i < s.len; i++)
s1.ch[i] = s.ch[i];
for (i = 0; i < t.len; i++)
s1.ch[s.len + i] = t.ch[i];
s1.len = s.len + t.len;
s1.ch[s1.len] = '\0';
} else {
s1.len = 0;
}
return s1;
}
int StrCompare(SString s, SString t) {
if (s.len != t.len)
return 0;
for (int i = 0; i < s.len; i++) {
if (s.ch[i] != t.ch[i])
return 0;
}
return 1;
}
int SubString(SString *sub, SString s, int pos, int len) {
if (pos < 1 || pos > s.len || len < 1 || len > s.len - pos + 1) {
sub->len = 0;
return 0;
} else {
for (int i = 0; i < len; i++)
sub->ch[i] = s.ch[pos - 1 + i];
sub->len = len;
sub->ch[len] = '\0';
return 1;
}
}
void StrCharu(SString *s, SString t, int pos) {
if (s->len + t.len >= MAXLEN || pos < 1 || pos > s->len + 1) {
printf("插入失败\n");
return;
}
for (int j = s->len; j >= pos; j--)
s->ch[j + t.len - 1] = s->ch[j - 1];
for (int j = 0; j < t.len; j++)
s->ch[j + pos - 1] = t.ch[j];
s->len += t.len;
s->ch[s->len] = '\0';
}
void StrShanchu(SString *s, int pos, int len) {
if (pos < 1 || pos > s->len) {
printf("错误\n");
return;
}
if (s->len - pos + 1 < len) {
s->len = pos - 1;
} else {
for (int k = pos + len - 1; k < s->len; k++)
s->ch[k - len] = s->ch[k];
s->len -= len;
}
s->ch[s->len] = '\0';
}
SString StrTihuan(SString *s, SString t, int pos, int len) {
StrShanchu(s, pos, len);
StrCharu(s, t, pos);
return *s;
}
int main() {
return 0;
}