引用 | 编辑
dfgkopeeed
2011-12-05 09:12 |
楼主
▼ |
||
x0
我现在假设我文件档(档名01.txt)的内容有38.117.232.0/24 32.112.45.0/24 1.53.48.0/20 这三个,我已经做出能读取档 ..访客只能看到部份内容,免费 加入会员 x0
|
引用 | 编辑
dfgkopeeed
2011-12-05 10:05 |
2楼
▲ ▼ |
引用 | 编辑
ebolaman
2011-12-05 13:05 |
3楼
▲ ▼ |
读取进来的方法有很多种,第一个要作的是用 char* 阵列来储存三个 字串
arrS[0] = "38.117.232.0/24" arrS[1] = "32.112.45.0/24" arrS[2] = "1.53.48.0/20" 可以用 scanf 用 %s 方式一次读一串,或是全部读进来后,用 strtok 依照空白字元 切割 接下来要做分类的动作,作分类的动作之前,必须先得知每个 arrS 斜线后面的数字是多少 也是可以用 strtok 来作切割,再来用 atoi 转换成数字 或是用 strrchr 来搜寻斜线,同样动作用 atoi 转换成数字 接下来分类我提供一个很简单的方法 : 用另外一个阵列 arrNum[] 来记录斜线后的数字,对应到同一 Index 的 arrS 只要将 arrNum 来排序,排序过程中任何两个 Index 的数字 swap 时候,arrS 的字串也要跟着 swap arrS[0] = "38.117.232.0/24" arrS[1] = "32.112.45.0/24" arrS[2] = "1.53.48.0/20" arrNum[0] = 24 arrNum[1] = 24 arrNum[2] = 20 排序完后资料会像这样 : arrS[0] = "1.53.48.0/20" arrS[1] = "38.117.232.0/24" arrS[2] = "32.112.45.0/24" arrNum[0] = 20 arrNum[1] = 24 arrNum[2] = 24 再把 arrS 用回圈从 0 ~ 2 依序印出即可 这是一个我想出来的几个简单的方法,要更有效率可以用 List, Tree 等资料结构来作,但是稍显复杂 x0 |
引用 | 编辑
dfgkopeeed
2011-12-05 18:20 |
4楼
▲ ▼ |
谢谢您的回答,我现在的困境是在我很有很多笔资料(几千笔),我在想这样的话要怎么去做处理
x0 |