两个文件字符串小程序(CN_IPv4 extract)
来源:互联网 发布:imovie在mac上怎么导出 编辑:程序博客网 时间:2024/05/22 17:22
cn.c 用于将从APNIC给出的IP分配文件中将CN|ipv4字段取出来~
#include <stdio.h>#include <string.h> #define MAXLINE 100 int main(){ char readline[MAXLINE]; char readlinecopy[MAXLINE]; char *p; FILE *fpread, *fpwrite; int i; fpread = fopen("APNIC.txt", "r"); fpwrite = fopen("CN.txt", "w"); while(fgets(readline, MAXLINE, fpread) != NULL && readline[0] != '\n'){ strcpy(readlinecopy, readline); printf("readline = %s\n", readline); p = strtok(readline, "|"); i = 0; while(p != NULL){ printf("%s\n", p); if(i==0 && strcmp(p, "apnic") == 0){ i++; // continue; } if(i==1 && strcmp(p, "CN") == 0){ i++; // continue; } if(i==2 && strcmp(p, "ipv4") == 0){ i++; printf("****write readline ****\n"); printf("%s \n", readline); fputs(readlinecopy, fpwrite); // continue; } p = strtok(NULL, "|"); } } fclose(fpread); fclose(fpwrite); return 0;}
cnip.c 用于将取出的CN|ipv4字段里面的源IP和长度拎出来~
#include <stdlib.h>#include <stdio.h>#include <string.h> #define MAXLINE 100 int main(){ char readline[MAXLINE]; char writeline[MAXLINE]; char *p; FILE *fpread, *fpwrite; int i; int mask; unsigned int totalmask; fpread = fopen("CN.txt", "r"); fpwrite = fopen("CNIP.txt", "w"); while(fgets(readline, MAXLINE, fpread) != NULL && readline[0] != '\n'){// strcpy(readlinecopy, readline); memset(writeline, 0, MAXLINE); printf("readline = %s\n", readline); p = strtok(readline, "|"); i = 0; while(p != NULL){ printf("%s\n", p); i++; if(i==4){ strcat(writeline, p); strcat(writeline, "|"); // continue; } if(i==5){ strcat(writeline, p); mask = atoi(p); totalmask += mask; fputs(writeline, fpwrite); putc('\n', fpwrite); // continue; } p = strtok(NULL, "|"); } } printf("totalmask = %u\n", totalmask); fclose(fpread); fclose(fpwrite); return 0;}
其实这主要是用来test一下有关string.h相关函数的,小结一下
strtok(*sentense, *cutchar)—— 用于使用分割符cutchar将sentense切分开来;
strcpy(*dst, *src)——用于把src的字符串内容复制到dst字符串中;
strcat(*sentense, *string)——用于向sentense末尾添加string字符串;
atoi(*string)——库<stdlib.h>中的函数(array to integer),用于将字符串格式的数字转化成int格式;
另外最重要的就是memset(*string, 0, sizeofstring)——用于字符串string的内容赋值,一般用来清零(类似的还有bzero())。
其中APNIC.txt 就是从这里copy下来的就OK了,其实上一篇有提过。这两个小程序跑下来统计国内ipv4总量为334512372。
就这些吧~- 两个文件字符串小程序(CN_IPv4 extract)
- AS小技巧「Extract Resource」快捷提取字符串
- codeforces_600A. Extract Numbers(字符串处理)
- 两个小字符串题目
- 两个汇编小程序
- 两个算法小程序
- 两个小程序
- 修改小文件中特定字符串的程序
- codeforces 600 A. Extract Numbers(字符串模拟)
- 小程序(一) 字符串过滤
- 小程序(二) 指定字符串删除
- 小程序 (四)字符串压缩
- 小程序 (五) 字符串分离
- 小程序(八) 字符串替换
- 小程序(十)字符串替换2
- 小程序:字符串统计
- 字符串加密小程序
- 我的第一个小程序(对文件中两个数相加,把和写回文件末尾)
- listbox美化——添加图片、修改背景色
- android学习:匿名内部类
- 创建CSDN博客,试运营
- Substring fzu2075
- mongodb中出现mmap failed with out of memory的解决方法
- 两个文件字符串小程序(CN_IPv4 extract)
- UCGUI使用的24位颜色RGB数值对照表
- 添加GMap.NET 控件的dll步骤
- 数据库连接池你用了吗
- struts1.x和struts2.x的区别
- nyoj-491--幸运三角形--简单深搜枚举(TLE)
- Linux那些事儿之我是EHCI(5) 2008年的这一场雪
- android初级面试总结
- 把一个字符串的大写字母放到字符串的后面,各个字符的相对位置不变,不能申请额外的空间。