Files
Data-Structure/CLion/CourseBook/0402_HString/HString-main.c
2020-02-14 23:25:25 +08:00

136 lines
3.6 KiB
C

#include <stdio.h>
#include "HString.h" //**▲04 串**//
// 测试函数,打印字符串
void PrintElem(HString S) {
int i;
for(i = 0; i <= S.length-1; i++) {
printf("%c", S.ch[i]);
}
printf("\n");
}
int main(int argc, char** argv) {
char* chars = "01234567899876543210";
HString S, T, sub, V;
int i;
printf("████████ StrAssign \n");
{
printf("█ 为堆串 S 赋值...\n");
StrAssign(&S, chars);
printf("█ S = ");
PrintElem(S);
}
PressEnterToContinue(debug);
printf("████████ StrEmpty \n");
{
StrEmpty(S) ? printf("█ S 为空!!\n") : printf("█ S 不为空!\n");
}
PressEnterToContinue(debug);
printf("████████ StrLength \n");
{
i = StrLength(S);
printf("█ S 的长度为 %d \n", i);
}
PressEnterToContinue(debug);
printf("████████ StrCopy \n");
{
printf("█ 复制 S 到 T ...\n");
StrCopy(&T, S);
printf("█ T = ");
PrintElem(T);
}
PressEnterToContinue(debug);
printf("████████ StrCompare \n");
{
printf("█ 比较字符串 S 和 T ...\n");
i = StrCompare(S, T);
i == 0 ? printf("█ S==T\n") : (i < 0 ? printf("█ S<T\n") : printf("█ S>T\n"));
}
PressEnterToContinue(debug);
printf("████████ StrInsert \n");
{
StrAssign(&T, "*****");
printf("█ 将 \"*****\" 插入到串 S 的第 11 个位置处... \n");
StrInsert(&S, 11, T);
printf("█ S = ");
PrintElem(S);
}
PressEnterToContinue(debug);
printf("████████ Index \n");
{
StrAssign(&T, "*****");
printf("█ 获取 \"*****\" 在串 S 中的第一次出现的位置...\n");
i = Index(S, T, 1);
printf("█ 串 \"*****\" 在 S 中第一次出现的位置为 %d \n", i);
}
PressEnterToContinue(debug);
printf("████████ SubString \n");
{
printf("█ 用 sub 返回 S 中第 11 个字符起的 5 个字符...\n");
SubString(&sub, S, 11, 5);
printf("█ Sub = ");
PrintElem(sub);
}
PressEnterToContinue(debug);
printf("████████ Replace \n");
{
StrAssign(&T, "*****");
StrAssign(&V, "#####@@@@@");
printf("█ 用 \"#####@@@@@\" 替换S中的 \"*****\" ...\n");
Replace(&S, T, V);
printf("█ S = ");
PrintElem(S);
}
PressEnterToContinue(debug);
printf("████████ StrDelete \n");
{
printf("█ 删除 S 中第 16 个字符起的 5 个字符...\n");
StrDelete(&S, 16, 5);
printf("█ S = ");
PrintElem(S);
}
PressEnterToContinue(debug);
printf("████████ ClearString \n");
{
printf("█ 清空 S 前:");
StrEmpty(S) ? printf(" S 为空!!\n") : printf(" S 不为空!\n");
ClearString(&S);
printf("█ 清空 S 后:");
StrEmpty(S) ? printf(" S 为空!!\n") : printf(" S 不为空!\n");
}
PressEnterToContinue(debug);
printf("████████ Concat \n");
{
HString Tmp, S1, S2;
StrAssign(&S1, "+++++");
StrAssign(&S2, "-----");
printf("█ 联接 \"+++++\"\"-----\" 形成 Tmp ...\n");
Concat(&Tmp, S1, S2);
printf("█ Tmp = ");
PrintElem(Tmp);
}
PressEnterToContinue(debug);
return 0;
}