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

📄 splitstring.cpp

📁 our homework big project
💻 CPP
字号:
#include "SplitString.h"


int SplitString::Include(char s)const
{
	if(s==' '||s=='\n'||s=='\t'||s=='\r')
		return 0;
	else if(s==','||s=='('||s==')'||s==';'||s=='*')
		return 1;
	else if(s=='\'')
		return 3;
	else if(s=='='||s=='!'||s=='>'||s=='<')
		return 4;
	else 
		return 2;
}


Words SplitString::GetWords(int &position,int length)const
{
	char currflag;
	char nextflag;
	Words temp;
	temp.startPos=position;
	
	while(position<length)
	{
		currflag=Include(m_inputstr[position]);
		nextflag=Include(m_inputstr[position+1]);
		
		if(currflag==3)
		{
			temp.startPos=position++;
			
			while((currflag=Include(m_inputstr[position]))!=3)
			{
				if(position==length)
				{
					temp.endPos=position-1;
					return temp;
				}
				position++;
			}
			temp.endPos=position++;
			return temp;
		}
		else if(currflag==4&&nextflag!=4)
		{
			temp.endPos=position++;
			return temp;
		}
		else if(currflag==2&&nextflag!=2)
		{
			temp.endPos=position++;
			return temp;
		}
		else if(currflag==1)
		{
			temp.endPos=position++;
			return temp;
		}
		else if(currflag==0)
		{
			position++;
			temp.startPos++;
		}
		else
		{
			position++;
		}
	}
	if(Include(m_inputstr[position-1])==0)position++;
	return temp;
}


int SplitString::FindSplitWords(vector<Words>& splits)
{
	int lastPos=(int)m_inputstr.size();
	int numOfWords=0;
    Words temp;
	int position=0;
	while((position<lastPos))
	{
		temp=GetWords(position,lastPos);
		if(position<=lastPos)
		{
			if(numOfWords>=(int)splits.size())
				splits.resize(splits.size()+1);
			splits[numOfWords].startPos=temp.startPos;
			splits[numOfWords].endPos=temp.endPos;
			numOfWords++;
		}
	}
	return numOfWords;
}

int SplitString::SplitWords(vector<string> &words)
{
	vector<Words> splitPos(2);
	int numOfWords=FindSplitWords(splitPos);
	for(int i=0;i<numOfWords;i++)
		words.push_back(string(m_inputstr,splitPos[i].startPos,
		               splitPos[i].endPos-splitPos[i].startPos+1));
	return numOfWords;
}

⌨️ 快捷键说明

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