小编Tri*_*tan的帖子

在C ++中使用多个定界符分割字符串

因此,我必须将短语“ 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)

唯一的问题是,在程序遇到标点符号的地方,现在有标记作为空白。有什么建议么?

c++ string split token delimiter

1
推荐指数
2
解决办法
2693
查看次数

标签 统计

c++ ×1

delimiter ×1

split ×1

string ×1

token ×1