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

📄 dragontoken.cpp

📁 提供將一個字串以某分隔字元打散的功能
💻 CPP
字号:

#include "stdafx.h"
#include "DragonToken.h"

CDragonToken::CDragonToken()
{
	b_initialized = FALSE;
	for(unsigned short i=0;i<512;i++)
		m_position[i] = 0;
	m_seperator = ' ';
	m_string_type = 0; // char*
	m_token_count = 0;
	p_sz_tokenBuffer = NULL;
	p_sourceString = NULL;
}

CDragonToken::CDragonToken(char* sourceString,char seperator)
{
	for(unsigned short i=0;i<512;i++)
		m_position[i] = 0;
	m_seperator = seperator;
	m_string_type = 0;
	m_token_count = 0;
	p_sourceString = new char[strlen(sourceString)+1];
	p_sz_tokenBuffer = new char[512];
	memset(p_sz_tokenBuffer,0,512);
	strcpy(p_sourceString,sourceString);
	b_initialized = TRUE;
	BreakString();
}

CDragonToken::~CDragonToken()
{
	if(p_sz_tokenBuffer != NULL)
		delete p_sz_tokenBuffer;
	if(p_sourceString != NULL)
		delete p_sourceString;
}

int CDragonToken::BreakString()
{
	if(b_initialized)
	{
		m_token_count = 0;
		int currentIndex = 1;
		int b_found = 0;
		int len = strlen(p_sourceString);
		for(unsigned short i=0 ; i <len ; i++)
		{
			if(*(p_sourceString+i) == m_seperator)
			{
				m_position[currentIndex] = i+1;
				currentIndex++;
				b_found = 1;
			}
		}
		if(b_found)
		{
			m_position[currentIndex] = len + 2;
			m_token_count = currentIndex;
		}
		return m_token_count;
	}
	else
		return 0;
}

int CDragonToken::GetTokenCount()
{
	if(b_initialized)
		return m_token_count;
	else
		return -1;
}

char* CDragonToken::GetToken(int m_count)
{
	if(m_count > m_token_count)
		return NULL;
	int len = m_position[m_count+1] - m_position[m_count] - 1;
	if(len > 0 && len < 512)
	{
		strncpy(p_sz_tokenBuffer,p_sourceString+m_position[m_count],len);
		*(p_sz_tokenBuffer+len) = NULL;
	}
	else
		strcpy(p_sz_tokenBuffer,"");
	return p_sz_tokenBuffer;
}

⌨️ 快捷键说明

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