<分区>
所以我必须将短语:“大家好!这是:COSC-1436,SP18”拆分成单独的标记,去掉任何标点符号减去破折号。所以输出应该是:
你好
大家
这个
是
COSC-1436
SP18
然后我必须加密我得到的每个 token 。我只是在使用多个定界符时遇到问题。这是我目前拥有的。
函数原型(prototype):
void tokenize(const string&, const string&, vector<string>&);
函数调用:
tokenize(code, " .,:;!?", tokens);
函数定义:
void tokenize(const string& str, const string& delim, vector<string>& tokens)
{
int tokenStart = 0;
int delimPos = str.find_first_of(delim);
while(delimPos != string::npos)
{
string tok = str.substr(tokenStart, delimPos - tokenStart);
tokens.push_back(tok);
delimPos++;
tokenStart = delimPos;
delimPos = str.find_first_of(delim, delimPos);
if(delimPos == string::npos)
{
string tok = str.substr(tokenStart, delimPos - tokenStart);
tokens.push_back(tok);
}
}
}
唯一的问题是现在在程序遇到标点符号的地方有标记作为空格。有什么建议吗?