因此,我必须将短语“ Hello,每个人!这是:COSC-1436,SP18”拆分为单独的标记,删除所有标点符号减去破折号。因此输出应为:
你好
大家
这个
是
COSC-1436
SP18
然后,我必须加密覆盖的每个令牌。我只是在使用多个定界符时遇到麻烦。这是我目前所拥有的。
功能原型:
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
唯一的问题是,在程序遇到标点符号的地方,现在有标记作为空白。有什么建议么?