串的顺序存储表示
2012-11-26 09:02
148 查看
#include <stdio.h> #include<stdlib.h> #define Error 0 #define Ok 1 #define MAXSIZE 256 typedef int Status; typedef struct { char str[MAXSIZE]; int length; }SqString; //定义串的结构体,用一个数组存储串 Status StrAssign(SqString &T,char chars[]){ //生成一个值等于chars的串T int i,j; T.length=0; i=sizeof(chars)/sizeof(char); for(j=0;j<i;j++) T.str[j]=chars[j]; //将一个数组中的数据传递到一个串中 T.length=i; return Ok; } Status StrLength(SqString T) //获取串T的长度 { return T.length; } Status StrCope(SqString &T,SqString S) //将一个串中的值拷贝到另一个串中 { int i; for(i=0;i<S.length;i++) T.str[i]=S.str[i]; T.length=S.length; return Ok; } Status StrCompare(SqString s1,SqString s2) //将两个串的长度进行比较 { if(s1.length>s2.length) printf("串一大于串二\n"); else if(s1.length==s2.length) printf("串一等于串二\n"); else printf("串一小于串二\n"); return Ok; } Status Concat(SqString &T,SqString s1,SqString s2) //将两个串合并 { int i,j; if(s1.length+s2.length>MAXSIZE) return Error; for(i=0;i<s1.length;i++) T.str[i]=s1.str[i]; for(j=0;j<(s2.length);j++) T.str[s1.length+j]=s2.str[j]; T.length=s1.length+s2.length; return Ok; } Status SubString(SqString &Sub,SqString s,int pos,int len) //从一个串中截取一个子串 { int i,j; if((pos<1||pos>s.length)&&(len<0||len>s.length-pos+1)) return Error; for(i=pos,j=0;j<len;i++,j++) Sub.str[j]=s.str[i-1]; Sub.length=len; return Ok; } void print(SqString T) //输出串 { int i; for(i=0;i<T.length;i++) printf("%c",T.str[i]); printf("\n"); } void main() { SqString S,T,T2,T3,T4; int pos,len; char chars[]={'a','b','c','d'}; char charss[]={'e','r','t','y'}; StrAssign(T2,charss); StrAssign(T,chars); printf("串一为:"); print(T); printf("串二为:"); print(T2); StrCope(S,T); printf("复制串一后的串为:"); print(S); printf("判断串一与串二的长度大小\n"); StrCompare(T,T2); printf("将串一与串二连接为:"); Concat(T3,T,T2); print(T3); printf("输入从合并后的串中在第几个位置截取几位作为子串"); scanf("%d,%d",&pos,&len); SubString(T4,T3,pos,len); printf("子串为:"); print(T4); getchar(); getchar(); }
串的定长顺序存储表示,就是用的普通的数组来存储串
这个是个简单的表示,没有用书上的算法,书上的还要考虑截断什么的,老师说那个没有必要,所以就按照这个写了
相关文章推荐
- (严蔚敏版)数组的顺序存储表示和实现代码
- 字符串定长顺序存储表示模板
- 线性表的顺序存储(一)--数组表示
- 数组的顺序存储表示和实现
- 队列的顺序存储表示---数组实现
- 数据结构--数组和广义表--数组的顺序存储表示和实现
- 算法入门之串的顺序存储表示
- bo2-1.cpp 顺序表示的线性表(存储结构由c2-1.h定义)的基本操作(12个)
- 第四章(1)定长顺序存储表示
- 数组顺序存储表示和实现
- 算法入门之串的顺序存储表示
- 数据结构之栈的顺序存储表示
- 【数据结构】算法3.1-3.2 栈的顺序存储表示
- 算法入门之串的顺序存储表示
- 稀疏矩阵的三元组顺序表存储表示及基本操作
- 队列的顺序存储和链式表示方法-数据结构学习笔记2.3
- 数据结构(C语言)读书笔记10:串的定长顺序存储表示
- 串的定长顺序存储表示
- javascript实现数据结构:串--定长顺序存储表示以及kmp算法实现
- 数组的顺序存储表示