• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
704486377
博客园    首页    新随笔    联系   管理    订阅  订阅

c++中字符串分割函数

鉴于在C++中没有可以用一个字符串来分割字符串的函数,所以特意写了一个方便大家:

其中str1是要分割的字符串,str2是用来分割的字符串。

CString* GetStr(CString str1, CString str2, int &num)
{
    int long1=str1.GetLength();
 int long2=str2.GetLength();
 int sign=0;
 char*ch1=new char[long1];
 char*ch2=new char[long2];
 strcpy(ch1,str1);
 strcpy(ch2,str2);   

    int i=0,j=0;

    while(1)
 {
    if(j==long1)break;
       if(ch1[j]==ch2[i])
    {
     ++j;
     ++i;
     ++sign;
     if(sign==long2)
     {
              i=0;
     sign=0;
     ++num;
     }
    }
    else
    {
     j++;
     sign=0;
    }
 }
 num++;
    //num++;

    i=0;
 j=0;
 sign=0;

 CString*str=new CString[num];
 int begin=0,end=0;
    int n=0;

 while(1)
 {
  if(j==long1)
  {
   //n++;
         for(int k=begin;k<long1;k++)
   {
               str[n]+=ch1[k];
   }
   break;
  }
  if(ch1[j]==ch2[i])
  {
           ++j;
     ++i;
           ++sign;
     if(sign==long2)
     {
              i=0;
     sign=0;
     end=j-long2;
     for(int k=begin;k<end;k++)
     {
                  str[n]+=ch1[k];
     }
     begin=j;
     n++;
     }
  }
  else
  {
           j++;
     sign=0;
  }
 }
 


 return str;
}

posted @ 2009-03-23 18:45  好比  阅读(3447)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3