首页 > 解决方案 > 获取最后一个数据/字段超过分隔符,而不添加分隔符结束

问题描述

是否可以在字符串的最后一个定界符之后获取最后一个字符串/数据字段而不在字符串末尾添加定界符?

我正在阅读一个包含多个字符串的文件。但是,我无法以获取最后一个分隔符之后的行中的最后一个字符串/数据字段的方式解析单个字符串。我得到最后一个字符串的唯一时间是它是单行还是文件中的最后一行。

示例 - 我无法在以“;”分隔的这一行中获得43,6071

1;Maison de la Prevention;6 rue Maguelone;04 67 02 21 60;3,8795; 43,6071

以下是我尝试过的一些尝试:

string delim = ";";
vector<string> defibData;
size_t pos = 0;
for (int i = 0; i < rawData.size(); i++)
{
    while ((pos = rawData[i].find(delim)) != string::npos) {
        defibData.push_back(rawData[i].substr(0, pos));
        rawData[i].erase(0, pos + delim.length());
    }
}

for (int i = 0; i < rawData.size(); i++)
{
    s = rawData[i];
    string delimiter = ";";

    size_t pos = 0;
    string token;
    while ((pos = s.find(delimiter)) != string::npos) {
        token = s.substr(0, pos);
        cout << token << endl;
        s.erase(0, pos + delimiter.length());
    }
}

标签: c++stringparsing

解决方案


推荐阅读