资源简介
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语言实现线性方程组求解
- 学生成绩管理系统C语言实现
- 数据库课程设计C语言
- 无向图的邻接矩阵压缩存储.cpp
- C语言课程设计案例精编(14个经典案
- c语言三维线性插值
- GB2312编码和UTF-8互转c语言实现
- 朱战立——数据结构程序(C语言版源
- 信息熵的C语言实现
- C语言写的商品信息管理系统
- Linux环境下C语言Socket编程——客户端
- 单片机C语言 广告流水灯中断控制含
- C语言读取dat文件
- C语言socket编程实现网络数据传输
- 我自己写的扫雷源码Win32 API,C语言
- 0-1背包问题分支界限法求解-C语言实现
- 用c语言编写的扫雷程序
- 数字信号处理C++程序来源《数字处理
- 最高响应比算法调度作业.cpp
- Dijkstra最短路径算法C语言实现
- 猜动物游戏.zip
- C语言-打字母小游戏
- c语言汉诺塔代码
- C语言编写的猜数游戏
- c语言商品信息管理系统c语言课程作业
- C语言源代码 《烟花》
- 超市收银管理系统
- c语言程序设计_销售管理系统
- 运输问题c语言代码
- 数据结构c语言版快速排序实验报告
评论
共有 条评论