小说改名改完了

剩下的就是分类

网上找了几种实现方案,都不大满意

用静态字库的方法个人认为浪费内存,且效率不高

动态字库虽然能很好将首位汉字的拼音反编译出来,但是难度太高,做不了@_@

想了一个有点取巧的办法

把静态字库简化,只留下每个拼音字母对应的汉字中内码最大的那个(用strcoll操作的时候第一优先级为拼音首字母的话,第二优先级就是内码)

一个不足之处就是对同音字的处理不是很好,但是总体效果基本满意

贴上代码:

#include <stdio.h> #include <stdlib.h> #include <string.h> #include <locale.h> #include <direct.h> #include <afxwin.h> #define FileNum 200 //文件数,暂定为200 char *fun(char ce[][3],char inc) { char tec=inc; while(!*ce[tec-'a']){ tec--; } return ce[tec-'a']; } int main() { int i=0,j,n; char inc='a'-1; char mydir[10]={0,'~',0,0,0},cpdir[100]={0}; char ce[26][3]={"鏖","醭","蹉","踱","鲕","鳆","蝈","蠖","","麇","蛞","锊","钼","疟","耦","蹼","逡","箬","羧","鼍","","","鼯","鲟","氲","祚"}; //将字库中每个拼音首字母对应的汉字中内码最大的挑出,对于首字母不存在对应汉字的,将当前位置留空 char sin[FileNum][60]={0}; //存放文件名 CFileFind myfind; BOOL bfind=myfind.FindFile("*.txt"); while(bfind){ bfind=myfind.FindNextFile(); if(myfind.IsDots()||myfind.IsDirectory()) continue; else strcpy(sin[i++],myfind.GetFileName()); } for(j=0;j<26;j++) strcat(sin[i++],ce[j]); n=i; setlocale(LC_ALL,""); qsort(sin,i-1,60,(int(*)(const void *,const void *))strcoll); strcpy(cpdir,"./"); do{ printf("Sort from %c to _?",inc+1); mydir[0]=inc+1; inc=getchar(); //键盘输入分类区间(小写a-z) fflush(stdin); //将输入流清空 mydir[2]=inc; mkdir(mydir); //创建文件夹 j=0; while(!sin[j][0]) j++; while(strcmp(sin[j++],fun(ce,inc))){ //调用fun函数,返回ce中第inc位的有效字符串,若inc位无效,取左侧字符串直至找到有效值 for(i=0;i<26;i++){ if(!strcmp(ce[i],sin[j-1])) break; } if(i!=26) continue; else if(j>=n) break; else{ strcat(cpdir,mydir); strcat(cpdir,"/"); strcat(cpdir,sin[j-1]); if(!rename(sin[j-1],cpdir)) printf("File %s has been successfully moved to ./%s./n",sin[j-1],cpdir); else printf("File %s can't been moved to %s./n",sin[j-1],cpdir); } memset(cpdir,NULL,sizeof(cpdir)); //清空路径 } }while(inc<'z'); return 0; }

程序运行正常,所有文件均能按要求进入新建的对应文件夹中

懒人日志第二弹:文件按首位拼音分类进对应文件夹相关推荐

  1. 懒人日志:小说批量重命名。。。

    小说太多,都是以****.txt(文件名为数字)命名,为了方便寻找便有了将小说重命名的想法 小说名在文件内,手动操作太累,而且打开也慢(单个.txt文件都1M以上) 作为一个懒人,写个能用的程序把小说 ...

  2. python文件的两种类型进制文件,Python之基于十六进制判断文件类型

    #!/usr/bin/env python#-*- coding: utf-8 -*-#@Author : suk importstructfrom io importBytesIO#支持文件类型#用 ...

  3. 读《大道至简-- 第二章 是懒人造就了方法》 有感

    社会的进步.科学的发展,无不是靠这些"懒人". 懒人造就了方法,这句话一点也没错.突然间想想那些聪明的人,大多都是懒人.因为想得多,所以做得少.因为想得多,所以思维得到了锻炼,变得 ...

  4. Mac OS X 懒人版安装教程(之前的图全部挂了,所以重发了)

    请版主把我之前发的那个帖子删了!因为所有的图全部挂了,所以麻烦版主了-- 安装中出现五国的话就请进入这里看看是那里的错误http://bbs.pcbeta.com/viewthread-863656- ...

  5. 懒人必备:.NetCore快速搭建ELK分布式日志中心

    该篇内容由个人博客点击跳转同步更新!转载请注明出处! 前言 ELK是什么 它是一个分布式日志解决方案,是Logstash.Elastaicsearch.Kibana的缩写,可用于从不同的服务中收集日志 ...

  6. 《大道至简》第二章——是懒人造就了方法 (读后感)

    何为"大道至简"?在周爱民的<大道至简>一书中给出的大道至简的解析是软件工程实践者的思想,它是一种思想,而不是一些招数或者方法. 前几天我把这本书的第一章用伪代码的形式 ...

  7. 双尾蝎组织动态,针对巴勒斯坦人的攻击第二弹

    路过可以关注一下 #APT攻击# 双尾蝎组织动态,针对巴勒斯坦人的攻击第二弹 第一弹之前也写过,可见下 本期仍然强调该组织在20多个国家或地区注册了数百个域名,并感染了数千个受害者. 攻击手法 该组织 ...

  8. 《大道至简》第二章读后感--是懒人造就了方法

    何为"大道至简"?在周爱民的<大道至简>一书中给出的大道至简的解析是软件工程实践者的思想,它是一种思想,而不是一些招数或者方法. "僰蘭道有蜀王兵,亦有神作大 ...

  9. 大道至简(读后感)第二章 是懒人造就了方法

    <华阳国志>中写道 " 僰道有蜀王兵蘭 ,亦有神作大滩江中.其崖崭峻不可破,(冰)乃积薪烧之." 史记中记载战国时李冰凿了一座山搞成一条河.他的伟绩也是够大的! < ...

最新文章

  1. C++字符串反转(C++11)
  2. Java 数值的二进制中1的个数和整数次方
  3. wpf文本框限制输入长度_Excel办公实操,限制输入日期,手机号码,不重复数据的使用...
  4. java线程池案例_使用Executors 和 ThreadPoolExecutor实现Java线程池案例
  5. PTA16、列表元素个数的加权和(1) (10 分)
  6. 持续集成与持续部署宝典Part 4:创建持续部署流水线
  7. Vue中条件判断 v-if 、v-show
  8. linux下运行python unitest_Python单元测试unittest代码详解
  9. 下列软件包有未满足的依赖关系:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
  10. 深圳保障性住房【公租房、安居房、人才房】简单说明
  11. 无线路由器和有线路由器桥接
  12. 数据库 实验二 数据库的单表查询和连接查询
  13. 开源天气时钟项目删减和更新
  14. IDM+百度网盘提速下载复活版
  15. 【蓝桥杯】2019年第十届蓝桥杯(个人赛) 大赛介绍、注意事项及赛后总结
  16. 小程序 wepy+MinUI
  17. 【二级等保】二级等保安全物理环境要求有哪些?
  18. CNS数据链测试模拟平台——POCKET
  19. php快手开发平台api签名
  20. Docker 学习实战路线

热门文章

  1. vue移动端拖拽悬浮按钮
  2. Speedoffice(excel)如何将内容分列显示
  3. 硬之城获阿里云首批产品生态集成认证,携手阿里云共建新合作
  4. 活体检测+3D人脸识别:为“刷脸”上道安全锁
  5. QSqlDatabase二三事
  6. 费波纳奇数c语言,费波纳奇数列
  7. Traefik 详解
  8. 一文详解语义SLAM相关工作
  9. 前端基础之HTML扫盲
  10. 签名验证中常见的参数字典升序排序及拼接