12306泄露的数据,快速查找有木有你的, 编程实现示例
</pre><pre code_snippet_id="576257" snippet_file_name="blog_20150110_2_9643624" name="code" class="objc">
/**********************************************************************
* 版权所有 (C)2015, Wu Yingqiang
*
* 文件名称: BigData.c
* 文件标识:无
* 内容摘要:用于演示在大数据中查找指定的字符
* 其它说明:无
* 当前版本: V1.0
* 作 者:吴英强
* 完成日期: 20150109
*
* 修改记录1:// 修改历史记录, 包括修改日期、版本号、修改人及修改内容
* 修改日期: 20150109
* 版本号: V1.0
* 修改人: 吴英强
* 修改内容:创建
**********************************************************************/
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include <time.h>char gPath[200] = "E:\\12306数据.txt";
#define N 119153
char str[100] = { 0 };//要查找的字符串char **gPtr = NULL;//二级指针存储一级指针数组的地址/**********************************************************************
* 功能描述:获取文件有多少行
* 输入参数:无
* 输出参数:无
* 返回值: 行数 -1-失败
* 其它说明:无
* 修改日期 版本号 修改人 修改内容
* --------------------------------------------------------------------------------------
* 20150109 V1.0 Wuyq 创建
***********************************************************************/
int GetLineNum()
{int iFileSize = 0;FILE *pfr = fopen(gPath, "r");if (pfr == NULL){return -1;}else{int i = 0;while (!feof(pfr)){char strbuffer[256] = { 0 };fgets(strbuffer, 256, pfr);//读取一行i++;}iFileSize = ftell(pfr);printf("文件大小为:%f M\n", 1.0*iFileSize/1024/1024);fclose(pfr);//关闭文件return i;}
}/**********************************************************************
* 功能描述:初始化,把文件内容读到内存中
* 输入参数:无
* 输出参数:无
* 返回值: 无
* 其它说明:无
* 修改日期 版本号 修改人 修改内容
* --------------------------------------------------------------------------------------
* 20150109 V1.0 Wuyq 创建
***********************************************************************/
void Init()
{gPtr = (char **)malloc(sizeof(char *)*N);//动态分配一个指针数组memset(gPtr, '\0', sizeof(char *)*N);FILE *pfr = fopen(gPath, "r");if (pfr == NULL){printf("初始化失败\n");return;}else{for (int i = 1; i <= N; i++){char strbuffer[512] = { 0 };fgets(strbuffer, 512, pfr);//读取一行int length = strlen(strbuffer);//求获取长度if (length != 0){gPtr[i] = malloc(sizeof(char)*(length + 1));//每个指针分配内存if (gPtr[i] == NULL){printf("\nfail");}strcpy(gPtr[i], strbuffer);//拷贝字符串//printf("\n%s", gPtr[i]);//打印结果}}fclose(pfr);//关闭文件}
}
/**********************************************************************
* 功能描述:释放内存
* 输入参数:无
* 输出参数:无
* 返回值: 无
* 其它说明:无
* 修改日期 版本号 修改人 修改内容
* --------------------------------------------------------------------------------------
* 20150109 V1.0 Wuyq 创建
***********************************************************************/
void Free()
{for (int i = 1; i <= N; i++){free(gPtr[i]);}
}
/**********************************************************************
* 功能描述:搜索数据
* 输入参数:要搜索的字符串,由用户输入
* 输出参数:无
* 返回值: 无
* 其它说明:无
* 修改日期 版本号 修改人 修改内容
* --------------------------------------------------------------------------------------
* 20150109 V1.0 Wuyq 创建
***********************************************************************/
void Search(char *str)
{for (int i = 1; i <= N; i++){if (gPtr[i] != NULL){char *p = strstr(gPtr[i], str);//查询if (p != NULL){printf("所要查找的字符串, 在第%d行\n", i);//打印结果printf("%s\n", gPtr[i]);}}}
}
/**********************************************************************
* 功能描述:主函数
* 输入参数:无
* 输出参数:无
* 返 回 值:无
* 其他说明:无
* 修改日期 版本号 修改人 修改内容
* ---------------------------------------------------------------------
* 20150109 V1.0 Wuyq 创建
***********************************************************************/
void main()
{printf("文件总共有%d行\n", GetLineNum());Init();printf("已经加载完成\n"); time_t start, end;time(&start);printf("请输入您要查找的数据:\n");scanf("%s", str);Search(str);time(&end);printf("\n一共用时%d S\n", (unsigned int)(end - start));Free();printf("释放内存完成\n");system("pause");
}
后期需要改善: 汉字的问题。
12306泄露的数据,快速查找有木有你的, 编程实现示例相关推荐
- python中如何对复杂的json数据快速查找key对应的value值(使用JsonSearch包)
前言 之前在实际的项目研发中,需要对一些复杂的json数据进行取值操作,由于json数据的层级很深,所以经常取值的代码会变成类似这样: value = data['store']['book'][0] ...
- 大数据快速入门(05):MapReduce 编程模型赏析
一.Hadoop 诞生的传奇故事 (上图是 Doug Cutting,hadoop 之父) 1985年,Cutting 毕业于美国斯坦福大学. Cutting 的第一份工作是在 Xerox 做实习生, ...
- 大数据快速入门(09):永久弄清楚 Hive 分区表和分桶表的区别
蛋蛋 和 小智 今天又在"打情骂俏",他们今天在谈论分区表和分桶表,走,我们去听听. 这天,蛋蛋去茶水间倒水,他把水杯放在饮水机下面,打开开关,一直盯着墙上的画在看,灵魂仿佛已经飞 ...
- arcengine,深入理解游标Cursors,实现数据的快速查找,插入,删除,更新
风过无痕 原文 arcengine,深入理解游标Cursors,实现数据的快速查找,插入,删除,更新 深入理解游标Cursors,实现数据的快速查找,插入,删除,更新 1.查找数据Search Cu ...
- 索引 Index -- 快速查找数据
文章目录 1. 为什么需要索引 2. 索引的需求定义 2.1 功能性需求 2.2 非功能性需求 3. 构建索引常用的数据结构 4. 总结 索引这种常用的技术解决思路,底层往往会依赖哪些数据结构? 1. ...
- B-Tree/B+-Tree/二叉树/红黑树/Hash表/MySQL底层到底用哪个数据表建立索引做快速查找?
B-Tree/B+-Tree/二叉树/红黑树/Hash表/MySQL底层到底用哪个数据表建立索引做快速查找? ~~B-Tree~~ ==B+Tree== ~~二叉树(Binary Search Tre ...
- 西门子PLC快速查找数据算法
一.查找算法 1.当我们在一个 链表 或者 顺序表 中 查找 一个数据元素 是否存在 的时候,唯一的方法就是遍历整个表,这种方法称为 线性枚举.如果这时候,顺序表是有序的情况下,我们可以采用折半的方式 ...
- 6-1 简单快速排序分数 10作者 唐艳琴单位 中国人民解放军陆军工程大学本题要求实现一个函数,可快速查找给定x(保证是整个数据中其值存在,如果x有多个,查找第一个x)在整个数据中的排名(数据
6-1 简单快速排序 分数 10 全屏浏览题目 切换布局 作者 唐艳琴 单位 中国人民解放军陆军工程大学 本题要求实现一个函数,可快速查找给定x(保证是整个数据中其值存在,如果x有多个,查找第一个x) ...
- 索引:如何在海量数据中快速查找某个数据?
------ 本文是学习算法的笔记,<数据结构与算法之美>,极客时间的课程 ------ 前面讲过MySQL数据库索引实现原理,底层是依赖B+树这种数据结构来实现的.那类似Redisp 这 ...
最新文章
- 安装Ubuntu时分区选择
- phpstrtotime()对于31日求上个月有问题
- Business Partner Relationship Category in CRM and C4C
- dom4j和jaxp解析工具的
- DBShop电子商务系统
- 安卓抓包软件_你们要的抓包神器!以及抓包原理
- libcare Hello World测试例
- 切换回Chrome上的上次标签及打开设置快捷键
- Rainbow分页解决方案
- 一套价值十万的微信公众号采集解决方案
- mysql表结构指哪些_gp数据库查看表结构
- 计算机网络找不到共享的打印机驱动程序,解决方案:连接共享打印机时如何解决“找不到驱动程序” _计算机硬件和网络_IT /计算机_...
- 楼板的弹性计算和塑形计算_板计算的时候什么时候用弹性计算
- ringbuffer java例子_Java RingBuffer.publish方法代碼示例
- React Native组件之Switch和Picker和Slide
- 谈谈promise,谈谈微任务
- 学习记录——初始——计算机学习准备
- 微信小程序 MinUI 组件库系列之 abnor 异常流组件 1
- VC++在局域网基于winpcap实现QQ号码IP嗅探
- 神州租车用户口碑佳,原因有3点
热门文章
- 如何介绍世界上第一台计算机,[世界第一台计算机]计算机简单的自我介绍第一篇...
- MG-BERT | 利用 无监督 原子表示学习 预测分子性质 | 在分子图上应用BERT | GNN | 无监督学习(掩蔽原子预训练) | attention
- 服务器光信号闪红灯是什么意思,wifi光信号闪红灯什么意思
- [推荐]在线照相大头贴功能
- 引流脚本是什么?引流脚本如何多开
- linux中rar压缩包的解压与压缩方法
- 理论学习与实践的差距:框架开源与不可逆的趋势
- 园区网络安全设计——核心层
- nginx 文件服务器 开源,在开源分布式文件系统MogileFS 中使用 Nginx
- struts2 报错