C ++将字符串除以另一个字符串作为整体

杰里明

我想通过来拆分一个字符串and

首先,我必须明确指出,我不打算将任何regex字符用作分隔符。

我运行以下代码:

#include <iostream>
#include <regex>
#include <boost/algorithm/string.hpp>

int main()
{
    std::vector<std::string> results;
    std::string text=
        "Alexievich, Svetlana and Lindahl,Tomas and Campbell,William";
    boost::split(
        results,
        text,
        boost::is_any_of(" and "),
        boost::token_compress_off
        );
    for(auto result:results)
    {
        std::cout<<result<<"\n";
    }
    return 0;
}

结果与我期望的不同:

Alexievich,
Svetl







Li


hl,Tom
s




C
mpbell,Willi
m

似乎定界符中的每个字符都是单独起作用的,而我需要将整体and作为定界符。

除非您确定该示例适用于我的情况,否则请不要链接到该示例

伊戈尔垃圾

老式的方式:

#include <iostream>
#include <string>
#include <vector>

int main()
{
    std::vector<std::string> results;
    std::string text=
        "Alexievich, Svetlana and Lindahl,Tomas and Campbell,William";
    size_t pos = 0;
    for (;;) {
        size_t next = text.find("and", pos);
        results.push_back(text.substr(pos, next - pos));
        if (next == std::string::npos) break;
        pos = next + 3;
    }

    for(auto result:results)
    {
        std::cout<<result<<"\n";
    }
    return 0;
}

打包成可重用的功能留给读者练习。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在C#中用另一个字符串分割一个字符串

如何使用指针而不使用字符串库将字符数组复制到'c'中的另一个字符数组

在C#中,字符串NULL是否总是等于另一个字符串NULL?

如何在C ++中从输入中查找字符串并将其替换为另一个字符串?

如何定义一个字符串大于另一个字符串?(C#)(入门)

如何使用LINQ C#根据另一个字符串更改字符串内容

如何用C中的另一个字符串替换字符串中的字符

使用C ++将一个字符串替换为另一个字符串

将字符串插入C中的另一个字符串

如何使用sprintf推回C中的另一个字符串

c#中的字符串数组。从一个字符串数组中删除在另一个字符串数组中的元素

如何用C中的另一个字符串替换字符串中的子字符串?

如何在C中递归地找到另一个字符串中的字符串位置?

在C中进行字符串解析。将字符串的一部分复制到另一个字符串

在C编程中基于另一个字符串数组的单词从字符串数组中删除单词

C strcpy复制字符串并添加另一个字符

如何在C#中查找一个字符串中存在而另一个字符串中不存在的字符?

C ++将一个字符串中的一个字符追加到另一个字符串

C#建立一个字符串,将另一个字符串作为模板/规则/格式进行评估

数据表行检查字符串在 C# 中包含另一个字符串

c# 使用另一个字符串作为分隔符拆分字符串并将分隔符作为拆分字符串的一部分包含在内

使用正则表达式和 C# 识别另一个字符串中不存在的字符串

在C中将一个字符串分成一个子字符串,然后将该子字符串分成另一个字符串

如何根据 C# 中的另一个字符串向字符串添加字符?

如何提取字符串的前 X 个字符并将它们用于 C 中的另一个字符

检查字符串是否与 c 中没有 n 个字符的另一个字符串相似

C 将字符串分配给另一个字符串导致 realloc():下一个大小无效

坚持将“++X”与 C 中的另一个字符串进行比较

在 C++ 中查找一个字符串是否包含在另一个没有“查找”的字符串中