博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串与文件的匹配
阅读量:5138 次
发布时间:2019-06-13

本文共 2185 字,大约阅读时间需要 7 分钟。

程序实现功能:
问题描述】对任意输入的一串字符,在某文档中进行匹配,并给出匹配结果。

【测试数据】

(1)输入的一行程序,与源代码匹配,源程序自行选择;

(2)输入的一串字符,在某文本文件中匹配,文本文件自行选择。
这个程序写了大概6个小时。虽然才50多行。但是但凡涉及到文件和字符串的,必然要耗很久。。这一块有太多要注意的了。下面是源代码~
1 #include
2 #include
3 #include
4 #define size 10000 5 int main() 6 { 7 FILE *fp; 8 int i=0,j=0,l,len,tag[size],enter[size],a,w=0,te=0; 9 char filename[100],T[size],*out,*q,*temp;10 printf("请输入你想要匹配的字符串:\n");11 gets(T);12 printf("请输入你要匹配的文件路径:\n");13 scanf("%s",filename);14 if((fp=fopen(filename,"r"))==NULL)15 {16 printf("找不到文件路径!\n");17 exit(0);18 }19 len=strlen(T);20 fseek(fp,0L,SEEK_END);21 l=ftell(fp);22 out=(char *) malloc(sizeof(char) * l+1);23 fseek(fp, 0L, SEEK_SET); 24 fread(out,l,sizeof(char),fp);25 out[l]=0;26 q=out;27 fclose(fp);28 while(*q!=0)29 {30 31 if(*q==T[0])32 {33 temp=q;te=0;34 for(a=1;a35 {36 q++;37 if(*q=='\n')38 q++;39 if(*q!=T[a])40 {41 te=1;a=len;42 }43 }44 if(te==0)45 {46 tag[i]=j;47 enter[i]=w+1;48 i++;49 }50 q=temp;51 }52 j++;53 if(*q=='\n')54 {55 w++;56 j=0;57 }58 q++;59 }60 61 if(i)62 {63 printf("匹配成功!\n该字符串所在位置为:\n");64 for(a=0;a65 printf("第%d行 第%d列\n",enter[a],tag[a]);66 }67 else68 printf("匹配失败!");69 printf("\n");70 return 0;71 }

 

这个程序要注意和要值得反思的是
1:开始用了getc和feof来把整个文件放到字符串里,一直出“烫”,找不到毛病,最后用了ftell。还是出“烫”。原因是之前一直没加这一句“ out[l]=0;”这样才是字符串的正规结束
2:字符数组和字符指针的区别和用法,之前一直搞不清楚。现在明白了。具体的区别发在了上一篇文章里,我总结几个自己经常忽略的点。第一:不管是字符数组还是指针,都可以用p[1]p[2],这样的形式。
第二:字符数组只能在初始化时用char str[]="jia",而不能char str[20].str[]="fjas";
第三;字符指针,只是代表的是字符串的首地址,而字符数组是存的整个字符串
还有很多、、、待续                      2013.12.26
更新说明:
1:修复了换行显示不准的情况
2:修复了关于关键字存在于两行之间的情况                          2014年1月2日

 

转载于:https://www.cnblogs.com/ccode/p/3906028.html

你可能感兴趣的文章
hdu4374One hundred layer (DP+单调队列)
查看>>
类间关系总结
查看>>
properties配置文件读写,追加
查看>>
Linux环境下MySql安装和常见问题的解决
查看>>
lrzsz——一款好用的文件互传工具
查看>>
这20件事千万不要对自己做!
查看>>
Linux环境下Redis安装和常见问题的解决
查看>>
HashPump用法
查看>>
cuda基础
查看>>
Vue安装准备工作
查看>>
.NET 母版页 讲解
查看>>
oracle 创建暂时表
查看>>
201421410014蒋佳奇
查看>>
Xcode5和ObjC新特性
查看>>
LibSVM for Python 使用
查看>>
Centos 7.0 安装Mono 3.4 和 Jexus 5.6
查看>>
Windows 7 上安装Visual Studio 2015 失败解决方案
查看>>
iOS按钮长按
查看>>
Shell流程控制
查看>>
CSS属性值currentColor
查看>>