CString str = "C:\ D:\ E:\ F:\ G:\ H:\ I:\ "int m_pos = str.Find(':',n);  //其中n为整数我想问的是Find 函数的第二个参数的用法。
我试了一下,感觉n和m_pos之间没有规律。
比如当n=1时,m_pos = 1;
     n=2    m_pos = 5;
     n=3    m_pos = 5;
直到  n=6    m_pos = 9;
之后的我就不一一列举了,总之感觉n和m_pos没有什么联系。
哪位大虾能给我好好讲下Find函数的第二个参数的用法。谢谢了!

解决方案 »

  1.   

    怎么没联系了?n的值变化时,m_pos不是跟着变化了吗?
    这个参数的含义就是从哪个位置开始找,如果没有这个参数,则只能查找出第一次出现的位置,有了这个参数,可以利用循环,每次从上次找到的位置之后开始查找,这样就可以查找出整个字符串中出现目标字符的各个位置。
      

  2.   

    Find(LPCTSTR lpszSub,int nStart);   //lpszSub指要查找的字符,nStart指字串开始查找的起始位置
    一般字符串都是从零位置开始的.
      

  3.   

    CString str = "C:\\ D:\\ E:\\ F:\\ G:\\ H:\\ I:\\ ";
    int find_offset = 0; //起始位置
    while(find_offset < str.GetLength()) //判断超界
    {
      find_offset = str.Find(":",find_offset); //搜索字符串
      if(find_offset == -1) //未搜索到退出
        break;
      printf("%d\r\n",find_offset); //找到处理
      find_offset++; //指向下一个位置
    }