⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 taostring.cpp

📁 基于sipfoundy 公司开发的sipx协议API
💻 CPP
字号:
//// Copyright (C) 2004, 2005 Pingtel Corp.// //// $$//////////////////////////////////////////////////////////////////////////////#include <stdlib.h>#include <string.h>#ifdef TEST#include "utl/UtlMemCheck.h"#endif#include "tao/TaoString.h"#ifdef TAOSTR_DEBUGunsigned int TaoString::mStrCnt = 0;unsigned int getTaoStrCnt(){        return TaoString::mStrCnt;}#endif#if defined(_VXWORKS)extern "C" char* strdup(const char*);#endif//////////////////////////////////////////////////////////////////////// Construction/Destruction//////////////////////////////////////////////////////////////////////TaoString::TaoString(){#ifdef TAOSTR_DEBUG        mStrCnt++;#endif   mCnt = 0;}TaoString::TaoString(const char *str, const char *delimiter)        : mCnt(0),    mDelimiter(delimiter){#ifdef TAOSTR_DEBUG        mStrCnt++;#endif   size_t    length;        size_t   pos;        size_t   pos2;        size_t   patLen;   size_t    strLen ;        pos = 0;        pos2 = 0;        patLen = strlen(delimiter);        UtlString tmp(str);   strLen = strlen(str) ;        while (UTL_NOT_FOUND != (pos2 = tmp.index(delimiter, pos)))        {      length = pos2 - pos ;      if (length)      {         mStrArray[mCnt] = (char*) malloc(length+1) ;         strncpy(mStrArray[mCnt], &str[pos], length) ;         mStrArray[mCnt][length] = 0 ;      }      else         mStrArray[mCnt] = (char*) strdup("") ;      pos = pos2 + patLen;      mCnt++;      if (mCnt >= TAO_STRING_ARRAY_LENGTH)      {         mCnt = TAO_STRING_ARRAY_LENGTH - 1;         break ;      }   }   if (pos < strLen)   {      length = strLen - pos ;      mStrArray[mCnt] = (char*) malloc(length+1) ;      strncpy(mStrArray[mCnt], &str[pos], strLen-pos) ;      mStrArray[mCnt][length] = 0 ;      mCnt++ ;   }   else if ((mCnt == 0) && (*str != 0))   {      mStrArray[mCnt++] = (char *)strdup(str) ;   }   mStrArray[mCnt] = NULL;}TaoString::~TaoString(){   for (int i=0;i<mCnt; i++)   {      free(mStrArray[i]) ;      mStrArray[i] = NULL ;   }   mCnt = 0 ;#ifdef TAOSTR_DEBUG        mStrCnt--;#endif}const char* TaoString::operator []( int nIndex ) const{        if ((nIndex >= 0) && (nIndex < mCnt))                return mStrArray[nIndex] ;        else                return "";}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -