首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

有请jixingzhong(瞌睡虫·星辰)大哥看一下昨天帮小弟我解决的有关问题

2012-02-21 
有请jixingzhong(瞌睡虫星辰)大哥看一下昨天帮我解决的问题#includestdio.h#includestdlib.h#include

有请jixingzhong(瞌睡虫·星辰)大哥看一下昨天帮我解决的问题
#include   <stdio.h>
#include   <stdlib.h>
#include   <string.h>

void   main()
{   static   char   rule[200]={ "block   out   -i   if2   -a   from   128.10.0.0.255.255.0.0   to   any   -p   tcp   -do   23 "};
        char   tmp[100]={0};
        int   index=0;
   
       
        while(index <strlen(rule))
        {
          sscanf(rule+index,   "%s ",   tmp);
          index   +=   strlen(tmp)+1;
  /字符串操作,比较/
     
       
        }
        system( "PAUSE ");

}星辰大哥昨天这个解决方法解决字符串拆分问题很牛,室和字符串问题。但是有一个问题,它把128.10.0.0.255.255.0.0当成一个字符串,tmp[0]= '1 ',tmp[1]= '2 '这样子,我现在需要把它当成IP地址去比较,也就是要把它当作数字,当字符这样子的话128.10和128.122的不同字符串他们各位是不一样的。我很希望能够tmp[0]=128,tmp[1]=10这样子好计算阿。不知道怎么操作?怎么能识别出合格字符串里面是数字,并且把128当成一个完整数字,而不是字符串呢?

[解决办法]
char tmp[]= "128.10.0.0.255.255.0.0 ";
int arr[8];
sscanf(tmp, "%d.%d.%d.%d.%d.%d.%d.%d ",
&arr[0],&arr[1],&arr[2],&arr[3],&arr[4],&arr[5],&arr[6],&arr[7]);
int i;
for(i=0; i <8; i++)
printf( "%d ", arr[i]); //读取到数组了

热点排行