资源简介
1、实现串赋值、串比较、求串长、串联接以及求子串这5种基本操作。
2、能利用上述实现的基本操作完成置换Replace (&S, T, V)以及从串中删除一段子串StrDelete(&S,pos,len)的操作。
3、以上要求实现的操作不能直接使用C语言提供的函数(gets(),puts()除外)完成。
代码片段和文件信息
/**************************************************
实验四 串运算
1、 实现串赋值、串比较、求串长、串联接以及求子串这5种基本操作。
2、 能利用上述实现的基本操作完成置换Replace (&S T V)以及从串中删除一段子串StrDelete(&Sposlen)的操作。
3、 以上要求实现的操作不能直接使用C语言提供的函数(gets(),puts()除外)完成。
4、 所写源代码编程风格良好,有详细注释。
5、 程序运行界面良好,使用菜单实现每个基本操作。
****************************************************/
#include
#include
#include
#define NULL 0
#define MAX 20
#define TRUE 1
#define FALSE 0
typedef struct{
char* str;
int length;
}HString;
void menu(){
printf(“\n“);
printf(“\n ===================================================================“);
printf(“\n | |“);
printf(“\n | Welcome!Here is the menu.. |“);
printf(“\n | 1. Initialize a string; |“);
printf(“\n | 2. Copy a string; |“);
printf(“\n | 3. Compare two string; |“);
printf(“\n | 4. Get length of a string; |“);
printf(“\n | 5. Connect two strings; |“);
printf(“\n | 6. Get sub-string; |“);
printf(“\n | 7. Replace in string; |“);
printf(“\n | 8. Delete sub-string; |“);
printf(“\n | 9. exit. |“);
printf(“\n | |“);
printf(“\n ===================================================================“);
printf(“\n\nPlease choose which to do: “);
}
int InitStr(HString* s){
int i=0;
char a[20];
gets(a);
for(;a[i]!=‘\0‘;i++);
s->length=i;
if(!s->str) free(s->str);
if(!i) s->str=NULL;
else{
s->str=(char*)malloc((s->length)*sizeof(char));
if(!(s->str)) {printf(“Initialize failed!!\n“);return FALSE;}
for(i=0;ilength;i++) s->str[i]=a[i];
}
return TRUE;
}
void EmptyInit(HString* s){
s->length=0;
s->str=NULL;
}
int CopyString(HString* sHString s1){
int i=0;
s->length=s1.length;
if(!s->str) free(s->str);
if(!s1.length) s->str=NULL;
else{
s->str=(char*)malloc((s->length)*sizeof(char));
if(!(s->str)) {printf(“Copy string failed!!\n“);return FALSE;}
for(i=0;ilength;i++) s->str[i]=s1.str[i];
}
return TRUE;
}
int CmpString(HString s1HString s2){
int i;
for(i=0;i return s1.length-s2.length;
}
int GetLengthString(HString s){
return s.length;
}
int Concat(HString* sHString s1HString s2){
int i=0j=0;
s->length=s1.length+s2.length;
if(!s->str) free(s->str);
s->str=(char*)malloc((s->length)*sizeof(char));
if(!
相关资源
- C语言编程常见问题解答.pdf
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 利用C++哈希表的方法实现电话号码查
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
评论
共有 条评论