if( ((i>=0x0020)&&(i<=0x007e))  || 
((i>=0x00a0)&&(i<=0x0236))  ||
((i>=0x0250)&&(i<=0x0357))  ||
((i>=0x035D)&&(i<=0x036f))  || 
((i>=0x0374)&&(i<=0x0375))  || 
((i>=0x037a)&&(i<=0x037a))  || 
((i>=0x037e)&&(i<=0x037e))  || 
((i>=0x0384)&&(i<=0x038a))  || 
((i>=0x038c)&&(i<=0x038c))  || 
((i>=0x038e)&&(i<=0x03a1))      )
这个判断两个数据之间的数据,我想把它改成数组的形式,就是用数组中存放这两组数据,可是如果用数组,怎么判断呢?
我想用循环结构,因为将来这两组数据量非常多。

解决方案 »

  1.   

    二为数组或动态数组(如果数据量不定最好用动态)
    struct DATA_RGN
    {
      int nStart;
      int nEnd;  
    };CArray<DATA_RGN,DATA_RGN> m_DataRgn;...
    赋初值
    ...判断:
    int nCount = m_DataRgn.GetSize();
    BOOL bInRgn = FALSE;
    for(int j = 0 ; j < nCount ; j++)
    {
      if( i >= m_DataRgn[j].nStart &&  i <= m_DataRgn[j].nEnd)
       {
         //处理或在循环外处理
          ...
          bInRgn = TRUE;
          break;
        }
    }if(bInRgn )//循环外处理
    {
    //处理
    }