云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 数据结构课程设计-字符串操作

数据结构课程设计-字符串操作

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 7:57:14

T->ch[j]=h+'x'; T->ch[j+1]=l+'z'; j+=2; }

T->length=2*S.length; } //加密

void Decrypt(SString S,SString *T)

{ int i,h,l,m,n,j=0;

for(i=0;ich[j]=m+n; j++; }

T->length=S.length/2; } //解密

//------------模式匹配----------------------- int Index(SString S,SString T, int pos) { int i,m,n; SString sub; if (pos>=0)

{ n=StrLength(S); m=StrLength(T); i=pos; while (i<=n-m)

{ SubString(&sub,S,i,m); if (StrCompare(sub,T)!=0) i++; else

return i; } }

return -1; }//穷举法

int IndexBF(SString S,SString T,int pos) {int i,j,k=-1; i= pos; j = 0;

while( i

if(S.ch[i] == T.ch[j]){ i++; j++; } else{ i = i-j+1; j =0; } }

if(j>=T.length) k=i-T.length; return k; }

//BF算法

void get_next(SString T, int next[]) {int j,k;

next[0]=-1; next[1] = 0; j = 1;k=0;

while( j

if(k==0) {j++;

next[j]=0; } else

k=next[k]; } }

int IndexKMP(SString S,SString T,int pos,int next[]) { int i,j,k;

i= pos;j =0;k=-1;

while (i

if(j==0){i++;} else

j=next[j]; }

if (j>=T.length) k=i-T.length; return k; }

//KMP算法

//---------------文本文件单词的检索与计数------------------ int match(char a[],int n,char c) {int i;

for(i=0;i

if(a[i]==c) return 1; return 0; }

void CreatTextFile() {SString S;

char fname[10],yn; FILE *fp;

printf(\输入要建立的文件名:\

scanf(\ fp=fopen(fname,\

yn='n';//输入结束标志初值 while(yn=='n'||yn=='N')

{printf(\请输入一行文本:\gets(S.ch);gets(S.ch); S.length=strlen(S.ch); fwrite(&S,S.length,1,fp); fprintf(fp,\

printf(\结束输入吗?y or n :\ fclose(fp);//关闭文件 printf(\建立文件结束!\ }

void SubStrCount()

{char a[7]={',','.',';','!','?',' ','\\n'}; FILE *fp;

SString S,T;//定义两个串变量 char fname[10]; int i=0,j,k;

printf(\输入文本文件名:\ scanf(\ fp=fopen(fname,\

printf(\输入要统计计数的单词:\ scanf(\

T.length=strlen(T.ch);

while(!feof(fp)){ //扫描整个文本文件 memset(S.ch,'\\0',256);

fgets(S.ch,256,fp); //读入一行文本 S.length=strlen(S.ch); k=0; //初始化开始检索位置

while(k

{ if(match(a,7,S.ch[T.length])) i++;//单词计数器加1

k=j+T.length;//继续下一字串的检索 }

else {if(match(a,7,S.ch[j-1])&&match(a,7,S.ch[j+T.length])) i++;//单词计数器加1

k=j+T.length;//继续下一字串的检索 } } }

printf(\单词%s在文本文件%s中共出现%d次\\n\}//统计单词出现的个数 void SubStrInd()

{char a[7]={',','.',';','!','?',' ','\\n'}; FILE *fp;

SString S,T; char fname[10]; int i,j,k,l,m; int wz[20];

printf(\输入文本文件名:\scanf(\fp=fopen(fname,\

printf(\输入要检索的单词:\scanf(\

T.length=strlen(T.ch); l=0;

while(!feof(fp)) { memset(S.ch,'\\0',256); fgets(S.ch,256,fp); S.length=strlen(S.ch); l++; k=0; i=0;

while(k

if(match(a,7,S.ch[T.length])) {i++;

wz[i]=j;}

k=j+T.length; } else

{if(match(a,7,S.ch[j-1])&&match(a,7,S.ch[j+T.length])) {i++;wz[i]=j;} k=j+T.length; } }

if(i>0){

printf(\行号:%d,次数:%d,位置分别为:\for(m=1;m<=i;m++)

printf(\} }

搜索更多关于: 数据结构课程设计-字符串操作 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

T->ch[j]=h+'x'; T->ch[j+1]=l+'z'; j+=2; } T->length=2*S.length; } //加密 void Decrypt(SString S,SString *T) { int i,h,l,m,n,j=0; for(i=0;ilength=S.length/2; } //解密 //------------模式匹配-------------

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com