小说分段器0.1.1.20

简介:    今天上午对昨晚的原版本的改进。主要是改进了查找分段标志的算法,使分段逻辑显得更合理。 Code: /*   Name: 小说自动分段器    Copyright: Copyright ? 2011 Geek_Soledad All Rights Reserved ...

   今天上午对昨晚的原版本的改进。主要是改进了查找分段标志的算法,使分段逻辑显得更合理。

Code:
  1. /* 
  2.   Name: 小说自动分段器  
  3.   Copyright: Copyright ? 2011 Geek_Soledad All Rights Reserved 
  4.   Author: Geek_Soledad 
  5.   Date: 01-04-11 22:42 
  6.   Description: 对网络上一些没有分段的小说进行自动分段, 
  7.             条件是原文中每段开头均有四个空格以上  
  8. */  
  9. /* 
  10.    版本:0.1.1 
  11.    功能更新:改进了查找段标志的算法,及调试的代码。 
  12. */  
  13.   
  14. #include <stdio.h>  
  15. #include <stdlib.h>  
  16. #include <time.h>  
  17.   
  18. #define READSIZE 10240  
  19.   
  20. //#define _debug  
  21. FILE * fsave = NULL;  
  22.   
  23. void devide ( char *buffer); /* 该函数是自动分段的具体实现 */   
  24. char* findFlag ( char* temp, char* temp2, char* present);  
  25.   
  26. /* 该函数用于寻找作为分段标志的四个连贯的空格 */  
  27. char* findFlag ( char* temp, char* temp2, char* present)  
  28. {  
  29.     if ( NULL != temp ) {  
  30.         temp2 = temp;  
  31.         while ( ' ' == *temp2 && *temp2 ){  
  32.             temp2++;  
  33.         }  
  34.         return strstr( temp2, "    ");  
  35.     } else {  
  36.         return strstr( present + 1, "    ");  
  37.     }  
  38. }  
  39.   
  40. /* 该函数是自动分段的具体实现 */   
  41. void devide ( char *buffer)   
  42. {  
  43.     char *temp = NULL;  
  44.     char *present = buffer;  
  45.     char *temp2 = NULL;  
  46.   
  47.     temp = strstr( present, "    ");  
  48.     temp2 = findFlag( temp, temp2, present);  
  49.   
  50.     while ( temp && temp2 && *present){  
  51.     #ifdef _debug  
  52.         puts("");  
  53.         getch();  
  54.     #else  
  55.         fputc( '/n', fsave);  
  56.     #endif  
  57.         for( ; present < temp2 && *present != '/0'; present++){  
  58.     #ifdef _debug  
  59.             putchar( *present);  
  60.     #else  
  61.             fputc(*present, fsave);  
  62.     #endif  
  63.         }  
  64.         temp = strstr( present, "    ");  
  65.     //    temp2 = strstr( present+4, "    ");  
  66.         temp2 = findFlag( temp, temp2, present);  
  67.     }  
  68.     while (*present) {  
  69.     #ifdef _debug    
  70.         putchar( *present);  
  71.     #else  
  72.         fputc( *present, fsave);  
  73.     #endif  
  74.         present++;  
  75.     }  
  76. }  
  77.   
  78. int main(int argc, char *argv[])  
  79. {  
  80.     FILE * fload = NULL;  
  81.     char buffer[READSIZE] = "";  
  82.     char *isRead = NULL;  
  83.       
  84.     printf("请将要转换的文件更名为test.txt,并与本程序存放在同一目录下。/n");  
  85.     system("PAUSE");  
  86.           
  87.     clock_t start = clock();  
  88.     clock_t end ;  
  89.       
  90.     fload = fopen( "test.txt""r");  
  91.     if ( NULL == fload) {  
  92.         printf("找不到文件/n");  
  93.         system("PAUSE");  
  94.         return EXIT_FAILURE;  
  95.     }  
  96.       
  97.     fsave = fopen( "save1.txt""a");  
  98.     if ( NULL == fsave) {  
  99.         printf("无法建立存档文件/n");  
  100.         system("PAUSE");  
  101.         return EXIT_FAILURE;  
  102.     }  
  103.       
  104.     while( NULL != fgets( buffer, READSIZE, fload) ){  
  105.         devide ( buffer);  
  106.         memset ( buffer, 0, sizeof(buffer));  
  107. //      isRead = fgets( buffer, READSIZE, fload);  
  108.     }   
  109.     fclose(fload);  
  110.     fclose(fsave);  
  111.       
  112.     end = clock();  
  113.     printf("转换完成,共耗时%f秒/n", (double)( end - start) / CLK_TCK);  
  114.     system("PAUSE");  
  115.   
  116.     return 0;  
  117. }  

 

目录
相关文章
|
JSON 前端开发 数据格式
【前后端异常】http/https post请求 返回415错误状态码的解决方法
【前后端异常】http/https post请求 返回415错误状态码的解决方法
6629 0
|
移动开发 编解码 前端开发
摸鱼必备-80款在线HTML小游戏
本文推荐了80款精彩的HTML5在线小游戏,涵盖益智、冒险、射击、体育等多种类型,适合各年龄段玩家。无需下载安装,随时随地畅玩。地址:[https://game.share888.top/](https://game.share888.top/)
2705 7
摸鱼必备-80款在线HTML小游戏
|
1月前
|
Web App开发 JSON 数据格式
大麦网item_get - 获取详情数据接口对接全攻略:从入门到精通
大麦网无官方API,本文详解如何合规获取其演出详情数据,涵盖接口分析、反爬应对、Python实战代码及数据解析,助开发者构建稳定票务数据系统。(238字)
|
11月前
|
机器学习/深度学习 人工智能 算法
UCLA、MIT数学家推翻39年经典数学猜想!AI证明卡在99.99%,人类最终证伪
近日,加州大学洛杉矶分校和麻省理工学院的数学家团队成功推翻了存在39年的“上下铺猜想”(Bunkbed Conjecture),该猜想由1985年提出,涉及图论中顶点路径问题。尽管AI在研究中发挥了重要作用,但最终未能完成证明。人类数学家通过深入分析与创新思维,找到了推翻猜想的关键证据,展示了人类智慧在数学证明中的不可替代性。成果发表于arXiv,引发了关于AI在数学领域作用的广泛讨论。
349 89
|
Java API 开发工具
解决 Android 依赖冲突
解决 Android 依赖冲突
585 0
|
存储 弹性计算 数据库
阿里云服务器ECS产品试用、ECS试用攻略、试用宝典及试用产品续用相关活动介绍
阿里云服务器ECS产品免费试用是阿里云为新手用户提供的免费体验的权益,旨在为新手开发者提供 0 成本高质量的上云体验服务,打造开放,敏捷的开发者环境。阿里云为广大用户提供基础版、企业版试用产品服务(二选一),帮您0门槛轻松体验1个月,基础版最高可试用4核 (vCPU) 8 GiB配置,企业版最高可最高可试用8核 (vCPU) 16 GiB。本文为大家介绍云服务器ECS产品试用、试用宝典、ECS试用攻略及试用产品续用相关活动,以供参考。
|
人工智能 运维 安全
首个民航机场大模型应用上线!
首个民航机场大模型应用上线!
363 2
|
存储 安全 算法
密钥密码学(一)(4)
密钥密码学(一)
463 2
|
编解码 Python
python怎么提取视频中的音频
python怎么提取视频中的音频
593 0
|
计算机视觉
Markdown编辑器常用颜色背景指南(附颜色与代码展示,cv即可用)
Markdown编辑器常用颜色背景指南(附颜色与代码展示,cv即可用)