a[0] = aaa 
a[1] = bbb 
a[2] = cc 
===========
看不明白,你的目标是一个数组,但是你要的结果是三个数组啊

解决方案 »

  1.   

    应该将目标定义成char *dest[3]才行。
      

  2.   

    wltg2001 :
    可能我表达错了,就是想把一个字符串按指定的字符分割返回。但是又要注意线程安全和不能用MFC的类库
      

  3.   

    因为我是用delphi的,在c++里不知道该怎么表达;
    在delphi就是var s array of string;
    然后setlength(s, 20);
    这样就会有个动态的字符串数组了
    可以这样使用 s[0]:= 'aaa';
    s[1]:= 'bbb';s[n]:= '...';
      

  4.   

    int i=0,j=0,k=0;while(src[i]!='\0')
    {
       if(src[i] == ' ')
       {
          ++j;
          k=0;
       }
       else
       {  
          dest[j][k] = src[i]
          ++k;
       }
       ++i;

    随便写的 尽供参考。。
      

  5.   

    记得有人问过这样的问题,我是这样回答的:
    void SplitString(CString str, char split,CStringArray& strGet) 

      //str为待分割的CString,split为分割符如:, ¦或空格 strGet为输出参数,你得到的字符串存放在strGet中 
      int pos = -1; 
      pos = str.Find(split); 
      while(pos != -1) 
      { 
          CString strSun = ""; 
          strSun = str.Left(pos); 
          strGet.Add(strSun); 
          str.Delete(0,pos); 
          pos = str.Find(split); 
      } 
      if(str != "") 
      {//最后剩下的字符串可能没有split这个标示,看你需要怎么处理了 
      //这里也把他加入到strGet中 
        strGet.Add(str); 
      } 

    假设你的输出函数是void PrintStr(CString str); 
    CString str = "sssdf sfds jieuri lj122 98098"; 
    CStringArray strArray; 
    strArray.RemoveAll(); 
    SplitString(str,' ',strGet); 
    int count = strGet.GetSize(); 
    for(int i=0;i <count;i++) 

      PrintStr(strGet[i]); 
    } 不知是否符合你的要求,供参考!
    也可以参考http://topic.csdn.net/u/20080905/00/e87184ed-b6de-47b1-a6c7-d448d8e10ef2.html
    和你提了类似的问题。
      

  6.   

    楼上的 CStringArray 好像要引用afx之类的头文件吧?是不是和windows.h有冲突?我用了一下,报错。
      

  7.   

    就算是二维数组,也要知道dest的大小的
    就按照楼主说的函数原型的话,dest需要在函数内部分配或者外部传进一个足够大的区域来存放。说实话,最讨厌字符串的指针的指针使用,
    实际开发中,我都尽量避免,没事不给自己找麻烦,说不定出个错,追issue要追个几小时