一个由字符和数字组成的大文件,可能多行,可能就一行,找出文件中连续的“9999”有多少个 求方法 多多益善 请高手指点
本人想到了用string中的find 这是在文件分行的前提下 一行一行找。
本人想到了用string中的find 这是在文件分行的前提下 一行一行找。
解决方案
10
使用python来处理吧,或sed
10
仅供参考:
#include <stdio.h> #include <string.h> #define MAXLEN 1000 char ln[MAXLEN]; FILE *f; int i,z; int b,n,L; int main(int argc,char **argv) { if (argc<2) { printf("Usage:%s fullpathfilename.ext\nget total blank/non-blank/total linenumbers.\n",argv[0]); return 1; } f=fopen(argv[1],"r"); if (NULL==f) { printf("Can not open file [%s]!\n",argv[1]); return 2; } z=0; b=0; n=0; L=0; while (1) { if (NULL==fgets(ln,MAXLEN,f)) break; L=strlen(ln); if ("\n"==ln[L-1]) { if (0==z) { for (i=0;i<L-1;i++) { if (!(" "==ln[i] || "\t"==ln[i])) break; } if (i<L-1) z=1;//当前行不是空行 } if (0==z) b++; else n++; z=0; } else { if (0==z) { for (i=0;i<L;i++) { if (!(" "==ln[i] || "\t"==ln[i])) break; } if (i<L) z=1;//当前行不是空行 } } } fclose(f); if (L>0 && "\n"!=ln[L-1]) { if (0==z) b++; else n++;//最后一行末尾无"\n"也计算 } printf("File:[%s] total blank/non-blank/total linenumbers is %d/%d/%d\n",argv[1],b,n,b+n); return 0; }