⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main4-1.cpp

📁 配合严蔚敏的数据结构的辅导书
💻 CPP
字号:
 // main4-1.cpp 检验bo4-1.cpp的主程序
 #include"c1.h"
 #include"c4-1.h" // 串的定长顺序存储结构
 #include"bo4-1.cpp" // 定长顺序存储结构的基本操作(12个)
 typedef SString String; // 定义抽象数据类型String为SString类型
 #include"func4-1.cpp" // 与存储结构无关的两个基本操作

 void main()
 {
   int i,j;
   Status k;
   char s,c[MAX_STR_LEN+1]; // c中包括串结束符
   SString t,s1,s2;
   printf("请输入串s1:");
   gets(c); // 由键盘输入字符串给c
   k=StrAssign(s1,c); // 将字符串c转为SString类型,存入s1
   if(!k) // 本例由于c的长度所限,串长超过MAX_STR_LEN的现象不会发生
   { printf("串长超过MAX_STR_LEN(=%d)\n",MAX_STR_LEN);
     exit(OVERFLOW);
   }
   printf("串长为%d,串空否?%d(1:是 0:否)\n",StrLength(s1),StrEmpty(s1));
   StrCopy(s2,s1); // 复制串s1生成串s2
   printf("复制s1生成的串为");
   StrPrint(s2); // 输出串s2
   printf("请输入串s2:");
   gets(c); // 由键盘输入字符串给c
   StrAssign(s2,c); // 将字符串c转为SString类型,存入s1。可不要返回值
   i=StrCompare(s1,s2); // 比较串s1和串s2
   if(i<0)
     s='<';
   else if(i==0)
     s='=';
   else
     s='>';
   printf("串s1%c串s2\n",s);
   k=Concat(t,s1,s2); // 由串s1连接串s2生成串t
   printf("串s1连接串s2得到的串t为");
   StrPrint(t); // 输出串t
   if(k==FALSE)
     printf("串t有截断\n");
   ClearString(s1); // 清空串s1
   printf("清为空串后,串s1为");
   StrPrint(s1); // 输出串s1
   printf("串长为%d,串空否?%d(1:是 0:否)\n",StrLength(s1),StrEmpty(s1));
   printf("求串t的子串,请输入子串的起始位置,子串长度:");
   scanf("%d,%d",&i,&j);
   k=SubString(s2,t,i,j); // 串s2为串t的第i个字符起,长度为j的子串
   if(k) // 串s2存在
   { printf("子串s2为");
     StrPrint(s2); // 输出串s2
   }
   printf("从串t的第pos个字符起,删除len个字符,请输入pos,len:");
   scanf("%d,%d",&i,&j);
   StrDelete(t,i,j); // 将串t的第i个字符起的j个字符删除
   printf("删除后的串t为");
   StrPrint(t); // 输出串t
   i=StrLength(s2)/2; // i为串s2长度的一半取整
   StrInsert(s2,i,t); // 在串s2的第i个字符之前插入串t
   printf("在串s2的第%d个字符之前插入串t后,串s2为",i);
   StrPrint(s2); // 输出串s2
   i=Index1(s2,t,1); // 从串s2的第1个字符起查找串t
   printf("s2的第%d个字符起和t第一次匹配\n",i);
   i=Index(s2,t,1); // 从串s2的第1个字符起查找串t(另一种方法)
   printf("s2的第%d个字符起和t第一次匹配\n",i);
   SubString(t,s2,1,1); // 串t为串s2的第1个字符
   printf("串t为");
   StrPrint(t); // 输出串t
   Concat(s1,t,t); // 串s1为2个串t
   printf("串s1为");
   StrPrint(s1); // 输出串s1
   k=Replace(s2,t,s1); // 将串s2中的所有不重叠的串t,用串s1替换
   if(k) // 替换成功
   { printf("用串s1取代串s2中和串t相同的不重叠的串后,串s2为");
     StrPrint(s2); // 输出串s2
   }
   DestroyString(s2); // 销毁操作与清空操作作用相同
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -