【数据结构】串的基本操作
来源:互联网 发布:天刀捏脸数据库男性萌 编辑:程序博客网 时间:2024/05/17 20:01
#include<stdafx.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
//定义String为结构类型
typedef struct{
char*s;
intsize;
}String;
//字符串初始化并输出
int InitString(String &S,char*str)
{
intlen = strlen(str);
S.s= (char*)malloc(len*sizeof(char));
strcpy(S.s,str);
S.size = len;
printf("您要操作的字符串为:\n");
puts(S.s);
printf("字符串长度为:\n%d\n",S.size);
returnOK;
}
//输出子串
int SubString(String &S,intpos,int len)
{
String T;
char *p,*q;
q=T.s = (char*)malloc(len*sizeof(char));
T.size=len;
for(p=S.s+pos-1;p<S.s+pos+len;p++)
{*q=*p;q++;}
for(p=T.s;p<T.s+len;p++)
printf("%c",*p);
returnOK;
}
//模式匹配
int Index(String &S,char*str1)
{
String T;
inti=1,j=1;
char*p,*q=S.s,*w=S.s;
intlen = strlen(str1);
p=T.s= (char*)malloc(len*sizeof(char));
strcpy(T.s,str1);
T.size = len;
while(j<=T.size&&S.size-i>=len-1)
{if(*q==*p){p++;q++;j++;
if(j==len+1)printf("匹配成功!\n匹配的起始位置为%d",i);}
else{w++;q=w;p=T.s;j=1;i++;}
if(S.size-i<len-1)printf("匹配失败!\n");
}
returnOK;
}
//查找字符位置
int Seek(String &S,char c)
{
char*p;
inti=1,j=1;
for(p=S.s;p<S.s+S.size;p++)
{if(*p==c){printf("这是第%d个字符\n",i);j++;}i++;}
if(j==1)
printf("没有这个字符\n");
returnOK;
}
//主函数
void main()
{
String S;
chara[100];
printf("请输入一个字符串:\n");
gets(a);
InitString(S,a);
intflag=1,select;
printf("====================菜单===========================\n");
printf("= 1.输出子串 =\n");
printf("= 2.模式匹配 =\n");
printf("= 3.查找字符位置 =\n");
printf("= 4.结束操作 =\n");
printf("================支持乱序选择=======================\n");
while(flag){
printf("\n请选择菜单中的操作选项:\n");
scanf("%d",&select);
switch(select)
{
case1:
intpos,len;
printf("请输入子串的起始位置\n");
scanf("%d",&pos);
printf("请输入子串的长度\n");
scanf("%d",&len);
SubString(S,pos,len);break;
case2:
getchar();
charc[20];
printf("请输入一个子串:\n");
gets(c);
Index(S,c);break;
case3:
getchar();
charc1;
printf("请输入要查找的字符\n");
scanf("%c",&c1);
Seek(S,c1);break;
case4:flag=0;break;
default:printf("您输入的数据有误!\n");
}
}
}
- 【数据结构】 串的基本操作
- 【数据结构】串的基本操作
- 【数据结构】串的基本操作
- 数据结构 串(顺序存储)的基本操作
- 数据结构 串(链式存储)的基本操作
- 数据结构之顺序串的基本操作
- 第四章 串的基本操作【数据结构】
- 数据结构-顺序串的基本操作
- 数据结构队列的基本操作
- 数据结构:字符串的基本操作
- 数据结构 队列的基本操作
- 【数据结构】 栈的基本操作
- 【数据结构】 队列的基本操作
- 数据结构栈的基本操作
- 单链表的基本操作-数据结构
- 栈的基本操作-数据结构
- 【数据结构】图的基本操作
- 【数据结构】栈的基本操作
- 我的伯乐在哪里——假如我是一名大学生,招聘会有感
- Android总结
- NSRunloop 和 NSTimer
- 38.Oracle数据库SQL开发之 对行进行分组
- 《stl源码剖析》剖析
- 【数据结构】串的基本操作
- 黑马程序员——集合——泛型、Collections和Arrays
- python学习笔记(1)
- 39.Oracle数据库SQL开发之 日期和时间的存储与处理——几个简单的存储检索日期
- 2-读书笔记----iOS开发指南:从零基础到App Store上架--iOS视图和控件
- maven之pom.xml配置
- V模型,W模型,H模型介绍
- CvSVM支持向量机应用编程
- 40.Oracle数据库SQL开发之 日期和时间的存储与处理——使用TO_CHAR和TO_DATE