!再弄不出来,小弟我就要被开除了!

救命啊!再弄不出来,我就要被开除了!!
实现这样的功能:
      给你IP地址和它的掩码,让你判断某个IP,是否在这个网段之内。
      例如:给你
        58.32.0.0/17
        58.32.0.0     ---》IP地址
        17                   ---》掩码(表示IP前面17位不变,后面15位清零)

    这样:58.32.0.0/17   就表示这样一个网段:
      00111010   00100000   00000000   00000000
                                  到
      00111010   00100000   01111111   11111111

这时输入一个IP,比如:58.32.0.1,要你的程序判断是否在这个网段之内。
      大体就是这样子。
 
    我写了一个,   大家帮忙看看我这有没有错误.

===========================================================================
#include   <iostream>
#include   <string.h>
#include   <stdlib.h>
#include   <sys/socket.h>
#include   <netinet/in.h>
#include   <arpa/inet.h>
using   namespace   std;
//Class   analysis_char,   把   char   类型的IP地址转换成   int   类型  
class   analysis_char
{
public:
                      int   int_ipaddress;//返回int类型的   ip  
                      int   int_mask;//返回int类型的   mask  
                      char   char_ipandmask[20];
                      char   charbuffer[20];
                      analysis_char   (char   *x)   {   char_ipandmask   =   x;}
                  ~analysis_char();                
                      void   analysis();
                      void   init_charbuffer();
};

//analysis_char   类的成员函数,用来实现IP地址   char类型的到   int类型的转换  
void   analysis_char   ::   analysis()
{
                //定义字符串缓冲区
            char   *pcharbuffer;
                pcharbuffer   =   charbuffer;
                //定义两个指针,同时指向char_ipandmask的首地址  
                char   *p1,   *p2;  
        p1   =   char_ipandmask;
        p2   =   p1;
        while   (*p2   !=   NULL)  
        {
        //若p2指向‘/’,输出网络地址
        if   (*p2   ==   '/ ')
        {
                                        memcpy   (pcharbuffer,   p1,   (p2-p1));
                                        int_ipaddress   =   inet_addr(pcharbuffer);