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

📄 cb_string.cpp

📁 LINUX系统下基于ARM处理器的使用GPRS方式通过SOCKET数据包进行煤矿瓦斯监控的程序.这是在黑龙江省现场运行的程序源代码.
💻 CPP
字号:
/*
* Copyright (c) 2004,哈尔滨驰博电子公司软件部
* All rights reserved.
* 
* 文件名称:CB_String.cpp
* 文件标识:
* 摘    要:
* 
* 当前版本:1.0.3
* 作    者:Sam
* 完成日期:2004年8月16日
*
* 取代版本:1.0.2 
* 原作者  :Sam
* 完成日期:2004年6月10日
*/


#include "CB_String.h"
#include "CB_Unit.h"
#include "Afx.h"

//##ModelId=4088A0C902C5
void CB_String::split(char *str, char split)
{
  setString (str);
  setSplitChar (split);
  strcpy (m_string_buf, str);
}

//##ModelId=4088A1190357
CB_String::CB_String()
{
  initialize();
}

//##ModelId=4088A119036B
CB_String::CB_String(char *str)
{
  initialize();
  setString (str);
}

//##ModelId=4088A11903D9
CB_String::~CB_String()
{

}

//##ModelId=4088A14602F7
void CB_String::initialize()
{
  memset (m_string, '\0', sizeof(m_string));
  memset (m_string_buf, '\0', sizeof(m_string_buf));
  memset (m_string_result, '\0', sizeof(m_string_result));
  m_nextFlag = false;
}

//##ModelId=4088A1690366
char *CB_String::getNext()
{
  if (m_nextFlag == true)
    return NULL;
  
  char *pos;
  char tempBuf[160];
  
  memset (tempBuf, '\0', sizeof(tempBuf));
  pos = index (m_string_buf, getSplitChar ());
  if (pos != NULL)
  {
    int n = strlen (m_string_buf) - strlen (pos);
	memset (m_string_result, '\0', sizeof (m_string_result));
	strncpy (m_string_result, m_string_buf, n);
	strcpy (tempBuf, pos+1);
	strcpy (m_string_buf, tempBuf);
  }
  else
  {
    memset (m_string_result, '\0', sizeof(m_string_result));
    strcpy (m_string_result, m_string_buf);  
	m_nextFlag = true;
  }

  return m_string_result;
}

//##ModelId=4088A17E017B
char *CB_String::getString()
{
  return m_string;
}

//##ModelId=4088A1810017
void CB_String::setString(char *str)
{
  memset (m_string, '\0', sizeof (str));
  strcpy (m_string, str); 
}

//##ModelId=4088A2E102EE
void CB_String::setSplitChar(char split)
{
  m_split = split;
}

//##ModelId=4088A3BD0114
char CB_String::getSplitChar()
{
  return m_split; 
}

//##ModelId=40A32EA80131
int CB_String::getSplitCount()
{
   int count = 0;
   char buf[160];
   CB_Unit::clearBuf (buf,160);
  
   strcpy (buf, getString());
   CB_Unit::trim(buf); 

   if (strlen(buf) <=0 )
   {
      count = 0;
	  goto EXIT;
   }
 
   char *p;
   while (1==1)
   {
     p = index (buf, getSplitChar ()); 
	 if (p == 0)
	  break;
     strcpy (buf, p+1); 
     count += 1;
   }

   EXIT:  
   
   return count+1;
}

⌨️ 快捷键说明

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