stringtokenizer.cpp

来自「一个的文本分割程序」· C++ 代码 · 共 76 行

CPP
76
字号
#pragma   warning(disable:4786)
#include <string>
#include <vector>
#include "StringTokenizer.h"

using namespace std;

StringTokenizer::StringTokenizer(string str,string seperators)
{
	parse(str,seperators);
}

void StringTokenizer::parse(string str,string seperators)
{
	int len=str.length();
	int start,stop;

	start=str.find_first_not_of(seperators);
	while(start>=0&&start<len)
	{
		stop=str.find_first_of(seperators,start);
		if(stop<0||stop>len)
		{
			stop=len;
		}

		tokens.push_back(str.substr(start,stop-start));
		start=str.find_first_not_of(seperators,stop+1);
	}
	backToStart();
}

void StringTokenizer::backToStart()
{
	index=0;
}

string StringTokenizer::getNext()
{
	if(index>=0&&index<tokens.size())
	{
		return	tokens[index++];
	}
	else
	{
		return	"";
	}
}

string StringTokenizer::getToken(int i)
{
	if(i>=0&&i<tokens.size())
	{
		return tokens[i];
	}
	else
	{
		return "";
	}
}

int StringTokenizer::getTokenLength(int i)
{
	if(i>=0&&i<tokens.size())
	{
		return tokens[i].length();
	}
	else
		return 0;
}

int StringTokenizer::getSize()
{
	return tokens.size();
}

⌨️ 快捷键说明

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